Acme::Code::Police vs Acme::Code::FreedomFighter
2010-12-05
こんにちはこんにちは!
「x日目」と変換しようとすると「xに痴目」とか出てきてたいへんAcmeな感じのmyfinderです。
今回はmakamakaさんのAcme大全を読んでて面白かった Acme::Code::Police と Acme::Code::FreedomFighter というモジュールについて紹介します。
インストールする
どちらもCPANにあがっているので、cpanmで一発です。
$ cpanm Acme::Code::Police $ cpanm Acme::Code::FreedomFighter
どういうモジュールなのか
Acme::Code::Police
Acme::Code::Police は、useしたモジュールが use strict していない場合そのファイルを unlink するというモジュールです。恐ろしいですね。
$ vim acme.pl use Acme::Code::Police; print "no Acme, no Life.\n"; $ ls acme.pl $ perl acme.pl no Acme, no Life. $ ls # ファイルが消えてる!
こんな感じに、Acmeを叫ぼうとするとポリスが飛んできて逮捕(unlink)されてしまいます。このままでは自由にAcmeを叫ぶ事もできません。
Acme::Code::FreedomFighter
そんな恐ろしいモジュールに敢然と立ち向かう戦士が Acme::Code::FreedomFighter です。
どんなモジュールかはソースを見ればわかると思います。
このモジュールをuseすると、 Acme::Code::Police がファイルを unlink しようとしたときに現れ、逆に Acme::Code::Police を unlink しようとします。
$ vim acme.pl use Acme::Code::Police; use Acme::Code::FreedomFighter; print "no Acme, no Life.\n"; $ ls acme.pl $ perl acme.pl no Acme, no Life. $ ls acme.pl # ファイルが残ってる
ありがとうゲバラ、これでポリスに取り締まられる事もなく自由にAcmeを叫ぶ事ができるようになりました。
まとめ
ふつうに use strict すれば何文字もタイプしたり、ファイルが消える恐怖におびえる事もないので、ちゃんと use strict しましょうね、というお話でした。
明日は kan さんの Acme::PrettyCure です、おたのしみに!