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