Hokkaido.pm Casual#1に行ってきました
ぐだぐだになってしまい、ほんとゴメンなさいでした。
でも、次回(6/20)も予定してるのでよろしくね!
申し込みは、こちらから。
という訳で、なんで報告が遅れたかというと、
例のテストとか、ReverseProxyについて調べてました。
自分は、mojoで作ったCGIを、
perlbrewでインストールしたPerlで動かす方法を相談したのですが、
やっぱりスクリプトの先頭(*1)に使いたいPerlのフルパスを書くしかないらしいです。
(*1) シェバングって呼ぶらしい
それと、今月のカジュアルだったで賞と言えば、
「”hoge.pl”みたいなスクリプトのテスト方法は?」ですよね。
例えば、こういうスクリプト。
"test.pl"
use strict; use warnings; main() unless caller(); sub main { my $val = 2; print "${val} + 1 = " . add_one($val); } sub add_one { return $_[0] + 1; } __END__
これをテストするのに、こういうコードを書いてみる。
"test.t"
use strict; use warnings; use Test::More; require_ok( 'test.pl' ); ok( add_one(1) == 2, 'sub add_one' ); done_testing();
で、これのポイントは、
main() unless caller();
のunless caller()
で、
unless caller()
を付けずにテストするとmain()
が実行されてしまうけど、
これだと、
$ perl test.t
しても、main()
が実行されない。
テストで実行されたくないコードをmain()
に記述する必要があるけど、
テストが出来るならこの程度の制約は問題ないよね、っていう結論でした。
これを説明するのにライブコーディングしてくれたaloelightさんのvimが素敵だったので、
次回のテーマは、「Perlの開発環境」にした次第です。
(ライブコーディングしてくれたaloelightさんに感謝!)
という訳で、次回(6/20)の申し込みは、こちらから。
おしまい。
Leave a Comment