モジュールが依存しているモジュールを調べる方法
Moduleが依存しているモジュールを出力するスクリプトをDevel::FindNamepsacesを使ってかいてみた。Devel::NYTProfとかでprofiling結果をみていると、こんなモジュールつかってたのか!ということがよくあるわけですが、どのモジュールが使っているモジュールなのかがわかりにくいことがあります。
それを簡単にみれるようにしようというものです。これで、遅いしなんか依存したくないなぁとか、メモリ無茶苦茶くってるから避けたいなぁというモジュールを外すのが大分しやすくなります。
#!/usr/bin/env perl use strict; use warnings; use Module::Depends; use Devel::FindNamespaces; main(); sub main { my $memory_record = print_depended_modules(); } sub print_depended_modules { my $deps = Module::Depends->new->dist_dir('.')->find_modules; foreach my $module ( keys %{ $deps->requires } ) { print "#### $module #####################\n"; my @depended_modules = Devel::FindNamespaces->find($module); foreach my $depend (@depended_modules) { print "$depend\n" unless $depend =~ /$module/; } print "--------------------------------------\n"; } } __END__