Acme何thing? 解答編
2011-12-20
makamakaです。これは前日の続きですので、まずは19日分の記事に目を通してからお読みください。
問題は次の通りでした。
Acme::Anything Acme::Everything Acme::Nothing Acme::Something これらのうち、2011年12月19日現在CPANに存在していないモジュールはどれでしょう?
昨日はそのうち一つのサンプルをみてみました。今日は残り2つをみます。
下記のコードをご覧ください。useしてるモジュールは一つです。
use 5.014; use Acme::Everything; say JSON->new->encode(['ok']);
実行できますね? でもJSONなんていつロードしたのかしら? ロードしてないのに使えてる…… そう、このモジュールを一度useすれば、実行時にCPANからダウンロードしてくれるのです! CPANPLUS使ってます。
さあ、最後です。
use 5.014; use Acme::Nothing; use Carp; use JSON; Carp::carp("><");
ちゃんと動きませんね……。 Acme::Nothingはどんなモジュールをuseしてもロードしてくれなくなります。これもAcme::Anythingで使われてた@INCにサブルーチンリファレンスを仕込むテクニックを使ってます。
はい、というわけでCPANに存在しないのは「Acme::Something」が正解になります。
誰ぞAcme::Somethingに挑戦してみてはいかがでしょうか!? ではでは。