モジュールの読み込みにオプションをつける

use Hoge foo => 'bar';

みたいな感じで、読み込むときにオプションを設定できるようになっているモジュールがあります。例えば今私が使っているModule::Pluggableなんかもそうです。こういう実装をするにはどうすればいいのかと思って、ソースを読んでみたら意外とシンプルでした。ようは、自前のsub importを定義するだけ。

use Hoge;

は、以下のコードと同義です。

BEGIN {
    require Hoge;
    Hoge->import;
}

自分でimportメソッドを用意して、そこで引数を処理してやればいいだけでした。これでちょっとコードが綺麗になったかな。

ここ何日かTangerine関係の記事書いてなかったけど、サボってたわけじゃなくて、書くまでもない小さな修正ばかりしてました。