• ベストアンサー

CGIでPERLのモジュールの有無をしらべたい

telnetやsshなどで行うのではなく、CGIスクリプト上でサーバーにPerlのモジュールが使えるかどうか調べたいのです。 たとえば Crypt::DSA Image::Magick などが使えるかどうかです。 いわゆる ブラウザ上で Crypt::DSAがインストールされていません。NGです。 とか Image::Magickはインストールされています。OKです。 のようにです。 恐れ入りますがよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

ダサいソースですが書いてみました #!/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 但し大文字と小文字の指定が違います

その他の回答 (2)

  • ralf124c
  • ベストアンサー率52% (232/446)
回答No.3

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

参考URL:
http://www.futomi.com/library/servana.html
回答No.2

悪いアプローチかもしれませんが、 --- eval 'use HOGE;'; if($@){ # インストールされてる場合の処理 }else{ # インストールされてない場合の処理 } ---

関連するQ&A