kopug memo

名古屋で働くとあるWebエンジニアの覚書。

利用しているCPANモジュールとバージョン情報を取得する

 use Data::Dumper;

 my @modules_info = ();
 MODULE_LOOP:
 for my $module_path (keys %INC) {
     $module_path =~ s/\.\w+$//;
     $module_path =~ s/\//::/g;

     # * CPAN モジュールじゃないものはここで省く
     next MODULE_LOOP if $module_path =~ /^MyApp/;
 
     my $module  = $module_path;
     my $version = eval('$'. $module_path .'::VERSION');

     push @modules_info, { module => $module, version => $version };
 }

 print Dumper \@modules_info;

こんな感じで Keyにモジュール名、Valueにバージョン を持つ Array Hashを表示すると一目瞭然。

ただ物によっては動的にモジュールをuseしていたりする事もあると思うので、その場合は、全てuseし終わってる
所に上気を埋めこむ必要があります。