Distribution::Metadata というのを書いてみた
Distribution::Metadata というのを書いてみた。
これは local にある Module::Name からそれの属する distribution を特定し、
を取得するものである。
例えば LWP::UserAgent に対して以下のようなことができる。
use Distribution::Metadata; my $info = Distribution::Metadata->new_from_module("LWP::UserAgent"); print $info->meta_directory, "\n"; print $_, "\n" for @{ $info->files } __END__ /Users/skaji/env/plenv/versions/5.20.1/lib/perl5/site_perl/5.20.1/darwin-2level/.meta/libwww-perl-6.08 /Users/skaji/env/plenv/versions/5.20.1/bin/lwp-download ... /Users/skaji/env/plenv/versions/5.20.1/lib/perl5/site_perl/5.20.1/LWP.pm /Users/skaji/env/plenv/versions/5.20.1/lib/perl5/site_perl/5.20.1/LWP/Authen/Basic.pm ...
この機能はすでに cpanm などが持ち合わせているが、cpanm をライブラリとして使うべきでないと miyagawa さんに指摘していただいたので別モジュールとしてまとめてみた。