- ベストアンサー
CGIでPERLのモジュールの有無をしらべたい
telnetやsshなどで行うのではなく、CGIスクリプト上でサーバーにPerlのモジュールが使えるかどうか調べたいのです。 たとえば Crypt::DSA Image::Magick などが使えるかどうかです。 いわゆる ブラウザ上で Crypt::DSAがインストールされていません。NGです。 とか Image::Magickはインストールされています。OKです。 のようにです。 恐れ入りますがよろしくお願いいたします。
- みんなの回答 (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 但し大文字と小文字の指定が違います
その他の回答 (2)
- ralf124c
- ベストアンサー率52% (232/446)
Futomiのサーバアナライザがおすすめです。
- genkivogue
- ベストアンサー率22% (4/18)
悪いアプローチかもしれませんが、 --- eval 'use HOGE;'; if($@){ # インストールされてる場合の処理 }else{ # インストールされてない場合の処理 } ---