Best.pm いずれかのモジュールをuse
CPAN Recent Changesを読んでたら、Bestっていうモジュールが目に留まった(名前が派手なので)。
何をするモジュールなのか見てみると、こんなことをしてくれるらしい。
use Best qw(YAML::Syck YAML);
とすると、前に書いたものから順番にロードしてみて、うまくいったら終了、両方なければdie。
これは結構使えるかも、と思って試してみるけど、インターフェースが微妙で、実際に use したモジュールは
Best->which('YAML::Syck');
とすると取れるんだけど、実際にはこんなコードを書かないといけない。
my $module = Best->which('YAML::Syck') || 'YAML';
こんな感じで書けたらいいのかも。whichって名前なんだし。
use Best qw(YAML => qw/YAML::Syck YAML/); my $module = Best->which('YAML'); # YAML::Syck or YAML
実際の使用例はこんな感じ。
ちょっときれいに書けるようになるだけだけど。
use Best qw(YAML::Syck YAML); my $obj = Load($yaml);
use Best qw(JSON::Syck JSON); my $obj = Best->which('JSON::Syck') ? JSON::Syck::Load($json) : jsonToObj($json);
どちらかのモジュールをuseさせるためにモジュールをインストールさせるのは微妙だけど。。