複数バージョンの Perl のモジュールインストール状況を調べるスクリプト


開発用ホストに複数バージョンのPerlをインストールしている時に、まとめてモジュールインストール状況をチェックするスクリプト

プログラム

#!/usr/local/bin/perl --

use strict;
use warnings;

=pod
Check if perl module is installed and print the version if installed.

syntax: module_check.pl [MODULE LIST]
=cut

#ここは手動で編集しておく
my @perls = qw(
/home/perlbrew/perls/perl-5.8.9/bin/perl
/home/perlbrew/perls/perl-5.10.1/bin/perl
/home/perlbrew/perls/perl-5.12.4/bin/perl
/home/perlbrew/perls/perl-5.14.2/bin/perl
/usr/local/bin/perl
);

my @modules = @ARGV;
scalar @modules
or @modules = qw(CGI);

for my $p (@perls){
print "$p\n";
for my $m (@modules){
my $v = `$p -M$m -e 'print \$${m}::VERSION' 2>/dev/null`;
print "\t$m=$v\n";
}
}

Windowsの場合

Windowsの場合はシングルクオートをダブルクオートに、標準エラーを捨てる先を「/dev/null」から「nul」に変更する。

my $v = `$p -M$m -e "print \$${m}::VERSION" 2>nul`;

使い方

./module_check.pl Image::Magick GD

出力例

/home/perlbrew/perls/perl-5.8.9/bin/perl
    Image::Magick=
    GD=
/home/perlbrew/perls/perl-5.10.1/bin/perl
    Image::Magick=
    GD=2.46
/home/perlbrew/perls/perl-5.12.4/bin/perl
    Image::Magick=
    GD=2.46
/home/perlbrew/perls/perl-5.14.2/bin/perl
    Image::Magick=6.79
    GD=
/usr/local/bin/perl
    Image::Magick=6.2.8
    GD=