end0tknr's kipple - 新web写経開発

http://d.hatena.ne.jp/end0tknr/ から移転します

Module::Load for perl で installされた module の有無をまとめて確認

#!/usr/local/bin/perl
use strict;
use Module::Load;

main();

sub main {

    my @load_classes = qw/Apache::DBI  Apache2::Reload Archive::Tar
        Archive::Zip Crypt::Eksblowfish::Bcrypt      Crypt::SSLeay
        Date::Format DBI     DBD::mysql              DBD::ODBC
        DBD::Oracle  DBD::Pg Encode::HanExtra        IO::Socket::SSL
        JSON::XS     List::Util::XS  LWP::UserAgent  Mail::IMAPClient
        IO::Socket::SSL      ModPerl::Util           Net::DNS
        Net::LDAP    Template        Template::Stash::XS
        Text::CSV_XS Time::HiRes     Time::Piece     XML::LibXML
        XML::LibXSLT XML::Parser     YAML::XS/;

    for my $load_class (@load_classes) {
        eval { Module::Load::load $load_class };
        if ($@) {
            print STDERR "NOT INSTALLED $load_class \n";
        }
    }

}

1;

↑こう書くと、↓こう表示されます

$ ./chk_cpan_modules.pl
NOT INSTALLED DBD::Oracle 
NOT INSTALLED DBD::Pg 

Module::Pluggable でも同様のことができるかもしれないので、以前のurlを貼っておきます end0tknr.hateblo.jp