Tech エントリー[プログラミング / ライブラリ・モジュール]
Perl のモジュール活用
モジュールの一覧化
モジュールのあるなしを調べる際に、PHP でいうところの phpinfo() のような関数があると便利なんですが、どうやら標準ではなさそう[J] Perl で phpinfo() のような処理をする - Jamz (Tech)
HTML::Perlinfo などの外部モジュール (cpan モジュール) が別途必要なため、cpan install や make ができない場合はちょっとつらい。 HTML::Perlinfo は Module::CoreList や App::Info などを参照 App::Info は Module::Build を参照... 面倒なのでcpan install HTML::Perlinfo
HTML::Perlinfo をインストールしてみたが以下のようなエラーがログに載ってきてうまく動作しない。
[Wed Feb 20 16:21:29 2008] [error] [client 192.168.0.24] [Wed Feb 20 16:21:29 2008] perlinfo.cgi: Use of uninitialized value in concatenation (.) or string at /usr/lib/perl5/site_perl/5.8.6/HTML/Perlinfo/Apache.pm line 87.
[Wed Feb 20 16:21:29 2008] [error] [client 192.168.0.24] [Wed Feb 20 16:21:29 2008] perlinfo.cgi: Use of uninitialized value in concatenation (.) or string at /usr/lib/perl5/site_perl/5.8.6/HTML/Perlinfo/Apache.pm line 87.
[Wed Feb 20 16:21:29 2008] [error] [client 192.168.0.24] [Wed Feb 20 16:21:29 2008] perlinfo.cgi: Use of uninitialized value in concatenation (.) or string at /usr/lib/perl5/site_perl/5.8.6/HTML/Perlinfo/Apache.pm line 87.
[Wed Feb 20 16:21:29 2008] [error] [client 192.168.0.24] [Wed Feb 20 16:21:29 2008] perlinfo.cgi: Use of uninitialized value in concatenation (.) or string at /usr/lib/perl5/site_perl/5.8.6/HTML/Perlinfo/Apache.pm line 87.
[Wed Feb 20 16:21:30 2008] [error] [client 192.168.0.24] malformed header from script. Bad header=<!DOCTYPE html PUBLIC "e;-//W3C/: perlinfo.cgi
Perlの標準モジュール(コアモジュール)の一覧とか,あるモジュールがいつ標準モジュールに採用されたかとかってみんなどうやって確認しているんだろうと思ってたんですが,Module::CoreListなんてのがCPANにあったのね。
deq blog
Perlのバージョンごとの標準モジュール一覧は Rafaël Garcia-Suarez / perl - search.cpan.org (http://search.cpan.org/dist/perl/) でバージョンを切り替えて見てました。
Perlの標準モジュール一覧 - deq blog
標準で添付されているPerlモジュールライブラリの一覧を見たいと思って調べてみた。
$ man perlmodlib[ヅラド]
そのほか簡易的な方法として、以下のようなコードでも一覧できるが ... 見た目がいまいち。マジレスすると「それ Module::CoreList でできるよ」ってことで。
TokuLog 改め だまってコードを書けよハゲ
print "Content-type: text/plain\n\n";
print `perl -v`;
print `perl -V`;
print `find \`perl -e 'print "@INC"'\` -name '*.pm' -print`;
先のエントリー ([J] Perl で phpinfo() のような処理をする - Jamz (Tech)) にも掲載したが、以下のスクリプトが一番よさそう。
サーバーアナライザー - futomi's CGI Cafe
use でロードできるかどうかの実際の処理については以下のスクリプトが使える。 スクリプトに以下を埋め込んでおくとよさそう。use CGI::Carp qw(fatalsToBrowser);
頭にこの1行を書いておくだけで、実行中にエラーが出ると、500メッセージの変わりに親切なエラーメッセージを表示してくれるようになる。設置するとき足りないモジュールを探すのに便利だ。
ねこトトラ
おまけ
モジュールのインストールについて
基本は cpan install もしくは perl Makefile.PL make make install だが XS インターフェースを利用していないモジュールであれば任意の場所に配置し、use lib qw(./lib); などで利用が可能。XS インターフェース
- perlxs - XS言語リファレンスマニュアル
- perlxs - XS言語リファレンスマニュアル (perldoc.jp と同じ ?)
- The Perl5 Manual - 応用プログラムインタフェース
コメント (0) トラックバック (0) Atom/RSS
投稿: 2008年02月20日 15:39 / 最終更新: 2008年02月21日 15:33
» JavaScript のコーディング規約 (コーディングスタイル)
« デブサミ 2008 二日目の感想とか



コメント (投稿する)