Perl
二重引用符(ダブルクオート)の中にバックスラッシュを置くとき、 「\n」とか「\t」とかのエスケープシーケンスは展開されるけれど、 「\j」のような言語が認識できないようなものがどうなるか、言語間で差が出たのでメモ。 Perl print "$]\n"; print "\j\n…
http://r9.hateblo.jp/entry/20120513/p1ScanSnapでスキャンしたPDFをページごとに回転する - Perl日記r9.hateblo.jpの続き。(もう3年も前だ) 本体PDFに表紙PDFのページを差し込む 漫画の単行本をスキャンして自炊するときには、白黒の本体部分と、カラー…
久しぶりPerl書いたらハマったのでメモ。こんな仕様だったか。 my $str = "hoge123fuga"; # 123をキャプチャ $str =~ m|hoge(\d+)fuga|; warn $1; # 括弧使わないで正規表現マッチ $str =~ m|hoge|; warn $1; # さっきの$1は消える 123 at - line 5. Warning…
自分もメモ。 コマンド実行時に「--」で明確に引数の終わりを示さないと、carton上のGetopt::Longが動かなかった。 # hoge.pl use Getopt::Long; my $verbose = ''; GetOptions ('verbose' => \$verbose); print "verbose: $verbose\n"; $ carton exec perl …
3/8 18:40から約2時間、自分含め7人くらいで、Perlについて語り合った。いいね! 前回と違い、何も準備しなかったのがよかった 最初に内容を固定してしまうと、どうしてもそれに沿った内容を意識してしまって、柔軟性がなくなるからかな 参加者同士の質疑…
Redmine::Chan で IRC からプロジェクト管理を見て使わせていただいております。 https://github.com/onishi/Redmine-Chan 空前の「いまでしょ!」ブーム(職場限定)なので、minechanにもこのビッグウェーブに乗ってもらうことにしました。 優先度をMAXにして…
CommandパターンをPerlでやってみた。 https://github.com/rightgo09/perl-headfirst-designpattern/tree/master/command/undo インターフェースとなるCommandクラスでexecute()とundo()を宣言する Commandクラスを具象化したクラスで上述の2つのメソッドを…
Singletonパターンの前に、以前覚えたstateって最適化されて速いのかなとベンチマークしてみた。 myで外側にするのとMooseX::Singletonを比較に。 MooseX::Singletonが多機能っぽい分不利かなーとは思ってた。 20倍か。 MooseX::Singletonを外して比較。 Ben…
Strategyパターンの双子であるところのStateパターンをPerlでやってみた。 本で読んだだけだとピンと来なかったけど、実際に手で書いてみると確かにやっていることは同じだった。 https://github.com/rightgo09/perl-headfirst-designpattern/tree/master/st…
読んでる。 Head Firstデザインパターン ―頭とからだで覚えるデザインパターンの基本作者: Eric Freeman,Elisabeth Freeman,Kathy Sierra,Bert Bates,佐藤直生(監訳),木下哲也,有限会社福龍興業出版社/メーカー: オライリージャパン発売日: 2005/12/02メディ…
Perl->Rubyと経験して、「Rubyを知っているけどPerlを知らないひと向け」のPerl資料を書いてみている。 https://github.com/rightgo09/Perl-for-Rubyist/blob/master/README.md まあもう少し書いてみよう。 ブラウザで簡単に書けるのが面白い。
they 単なるitのエイリアス 複数形の言い回しに向いてる xdescribe/xcontext/xit/xthey それぞれdescribe/context/itの代わりに使う 要はpending扱いにしてくれる TODOラベルを貼る必要がない spec_helper 各テストファイルで共通のものを書いておいて、spec…
元ネタ「RSpec の入門とその一歩先へ、第2イテレーション - t-wadaの日記」「RSpec の入門とその一歩先へ、第3イテレーション - t-wadaの日記」 第2、第3イテレーションも見ておく describeに説明を追加 describeの引数は2つが限界なので、文字列にして説…
元ネタ「RSpec の入門とその一歩先へ - t-wadaの日記」第一イテレーション。 PerlのTest::Specだとどうなるかやってみた。 message_filter_spec.t Perlのテストファイルの拡張子は*.t RSpecっぽくするために、*_spec.tにする とりあえずテストファイルをt/に…
試行メモ。 Perlはかなり前からuse utf8すれば、日本語(マルチバイト)をクラス名とか変数名とかに使えるけれど、 クラス名を日本語にして、use Class::Accessor(::Fast)すると、 5.14系ではエラーになるけど、5.16系では大丈夫だった。 ちなみにClass::Acces…
出題された問題↓ http://mizti.hatenablog.com/entry/2013/01/26/011841作ったもの↓ https://github.com/rightgo09/crazy_gin 安直に全パターン網羅しようとすると絶賛爆死するので、アルゴリズムってやっぱり大事だなーと思った。 あと、初めてstateを使え…
Rubyのeach_with_indexは添字と要素が一度に取れるのでとても便利なときがある。 Perlで同じことをするには、5.12までは、ループ外に変数を置いて、ループ内でインクリメントするのが一般的だったけれど 5.12からはeach()が配列に対しても使えるようになって…
http://yapcasia.org/2012/talk/show/7b6375aa-bd29-11e1-ad51-b39f6aeab6a4https://github.com/onishi/Redmine-Chanfork https://github.com/rightgo09/Redmine-Chan IRCでチケット作成、更新、参照ができるととても捗ってよいです! AnyEvent::IRCとかも勉…
まー基本的にはクラス変数使わずにインスタンス変数でなんとかするのですが、メモ。 言語のクラス変数は違うはなし - Perl日記 の続き。Rubyだと、 class Hoge @@hoge = 'hoge!!!' end class Fuga < Hoge def hoge @@hoge end end puts Fuga.new.hoge #=> 'h…
毎週末の(Rubyメインの)勉強会で 「RubyistのためのPerl」というタイトルで90分くらい喋った。のどが疲れた。 発表資料 http://dl.dropbox.com/u/9152456/perl_for_rubyist/slide.html こういう発表みたいなのしたことなかったから勝手が分からなかった スラ…
https://github.com/rightgo09/p5-livedoorblog-pict-downloaderとりあえずMac用。$ENV{HOME}/Pictures に保存する。 carton用のファイルがもっと簡単に書けたらいいな。 Gemfileみたいな。
昨日ローカルな勉強会に参加してきた。 初回だったので、簡単なペアプロをすることになったのはいいものの、僕ともうひとかたのペアだけPerlであとのペアはRubyで実装ということになった。イエ-Perlで実装だぜーと思ってたけれど、以下の理由により、いろいろ…
https://github.com/rightgo09/Gazosureデフォルトで、config/deployment.plに 'BASE_DIRECTORY' => File::Spec->catdir($ENV{'HOME'}, 'Pictures'), ってしてある。Mac用。startupで起動して http://localhost:9091/ にアクセス。こんな感じ。
変数 シジル(ファニー文字)で大体分かる 特殊変数も例に漏れない $ならスカラ変数 ->ならデリファレンスかメソッド(サブルーチン) @とか[]なら配列 %とか{}ならハッシュ &とか()ならサブルーチン ついてなくて小文字ならサブルーチン 大文字なら定数かファイ…
ハマったのでメモ。 Perlのsubstrは substr(文字,開始位置,長さ) の開始位置は0オリジンで、 SQLのsubstrも同じく SUBSTR(文字,開始位置,長さ) と同じ使い方ができるが、1オリジンである。 Perl print substr('string!!!', 2, 1); #=> 'r' SQL -- MySQL SELE…
よくpackageの途中で改行されてるのを見る。 Try::Tiny package # hide from PAUSE Try::Tiny::ScopeGuard; でもこれをpod形式でぶったぎると死ぬ。つまりトークンとトークンの間。 package =pod hide from PAUSE =cut My::Module; Invalid version format (…
「PerlのWebプログラミング効率化のTips」を読んだ感想 - サンプルコードによるPerl入門 http://d.hatena.ne.jp/perlcodesample/20120609/1339246531 短くて再利用性がなく、細かくしてもメリットがないような処理は、処理2のように直接書いてしまっても良い…
一度勉強した覚えがあるけど忘れてたので、プログラミングPerlを参照したメモ。 $x = (7, 7, 7); #=> 7 $x = () = (7, 7, 7); #=> 3 <6/8追記> $x = (7, 7, 7); #=> 3 となっていたのは誤りです! @akajiro thanks! </追記>下はなぜ3なんだろう? プロ…
PSGIのStreamingなやり方がわかったので、一番触ってたAmon2でもできないかと思ってforkして書いてpull requestまでしてみた。 イメージとしては、 any '/' => sub { my ($c) = @_; $c->render('index.tt'); }; といういつものスタイルを壊さないような感じ…
久しぶりにモダパー読み直してたらqr//と文字列の正規表現マッチ速度が出てたので、新しい5.16とかも出てきてるし、やってみた。 Mac OS X 10.7.4 (Intel Core i7) perl-5.8.9 perl-5.10.1 perl-5.12.4 perl-5.14.2 perl-5.16.0 perl-5.17.0 use strict; use…