プロが教えるわが家の防犯対策術!

telnetやsshなどで行うのではなく、CGIスクリプト上でサーバーにPerlのモジュールが使えるかどうか調べたいのです。

たとえば
Crypt::DSA
Image::Magick
などが使えるかどうかです。

いわゆる

ブラウザ上で
Crypt::DSAがインストールされていません。NGです。
とか
Image::Magickはインストールされています。OKです。
のようにです。
恐れ入りますがよろしくお願いいたします。

A 回答 (3件)

ダサいソースですが書いてみました



#!/usr/bin/perl
print"Content-type: text/html\n\n";
print "<html><pre>\n";

## 調べたいモジュールを@pm_test に入れる
@pm_test = ('Crypt::DSA','Image::Magick','uso::desu','file::Find');

$lib_path= join(" ", @INC);
@pm_path = `find $lib_path -type f -name "*.pm"`;

foreach $pm_test(@pm_test)
{print"<hr> $pm_test のチェック<BR>\n";
$pm_test =~s/::/\//g;
$pm_test = $pm_test .'.pm';

foreach(@pm_path)
{if(/$pm_test$/i)
{$yn{$pm_test}=$_;
unless(/$pm_test$/){$check{$pm_test} = " 但し大文字と小文字の指定が違います<br>\n ";}
last;
}
}
if($yn{$pm_test}){print "$pm_test = $yn{$pm_test}<BR>$check{$pm_test}\n";}
else{print "$pm_test is Nothing<br>\n";}
}

__END__

# 家のTEST用サーバーでの結果は
Crypt/DSA.pm = /usr/lib/perl5/site_perl/5.8.8/Crypt/DSA.pm

Image/Magick.pm is Nothing

uso/desu.pm is Nothing

file/Find.pm = /usr/lib/perl5/5.8.8/File/Find.pm
但し大文字と小文字の指定が違います
    • good
    • 0

Futomiのサーバアナライザがおすすめです。



参考URL:http://www.futomi.com/library/servana.html
    • good
    • 0

悪いアプローチかもしれませんが、


---
eval 'use HOGE;';
if($@){
# インストールされてる場合の処理
}else{
# インストールされてない場合の処理
}
---
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!