Test::Module::Used でやりたいのだけど、できないこと
ずいぶん前から分かっている、バグじゃないけど、バグに近い挙動として、サブモジュールの扱いがあります。たとえば、DBIx::Skinny を Makefile.PL に requires 指定して、テスト対象のモジュールの lib で、DBIx::Skinny::Schema を use していたりすると、テストが失敗しちゃいます。本来であれば、これはテストが通るべきなんだろうけど、多分どうしようもないので放置しています。
一応 CPAN.pm を使って問い合わせできなくも無いのだけど。。。こんな感じね。
#!/usr/bin/perl use strict; use warnings; use Data::Dumper; # http://search.cpan.org/~andk/CPAN-1.9402/lib/CPAN/API/HOWTO.pod use CPAN; my $distribution = CPAN::Shell->expand( "Module", "DBIx::Skinny::Schema" )->distribution()->pretty_id(); warn Dumper($distribution); CPAN::Index->reload(); my @modules = CPAN::Shell->expand( "Distribution", $distribution )->containsmods(); warn Dumper(\@modules);
ネットワークアクセスが必要な点と、CPAN に問い合わせしたタイミング次第で結果が変わってしまうことがありうる、という点で筋悪かな、と思います。CPAN の設定次第でも挙動が変わりそうだし。
せめてローカルにインストールされたモジュールとかで調べることができたらいいのにな、と思うんだけど。それが出来そうなモジュールが見つからないんだよね。。。