あれだよ、あれ......なんだっけ?スマートフォン用の表示で見るあれだよ、あれ......なんだっけ?この広告は、90日以上更新していないブログに表示しています。2009-10-29Perlモジュールが入っているか調べる2つの簡単なやり方プログラミングPerlのモジュールがインストールされているかを調べる方法の中でも初心者向けのものを書き残しておきます。Perlでスクリプトを書いているとよく自分が使おうとしているモジュールがインストールされているのか調べたくなる時がやってきます。僕の知人にも最近Perlを使い始めた人が居まして、彼から今日まさにこのことについて質問されたので、彼がまた同じことを聞いてきた時に・或いは彼以外の人間がPerlを使い始めた時に答えやすいようにここに記録を残しておきたいと思います。Perlのモジュールがインストールされているか調べる方法は幾つかありますが、ここでは2つ挙げておきます。忙しい人向けインストールされているモジュールの.pmファイルのパスを調べたい人向けこの2つですね。他にも色々と手はありますが、まあ初心者向けの比較的簡単な手ということでひとつ。そうそう、今回の方法の中でも後者の方はFreeBSDかLinux向けです。Windowsでは利用できないと思いますので悪しからず。忙しい人向け「もうとにかく大急ぎでモジュールがあるか調べたい!」或いは「待ち時間があるなんて死んでも嫌!!」という人向けです。シェル上で以下を実行してください。''はい、これで「モジュール名」で指定したモジュールが@INCにインストールされているか調べる事が出来ます。判別の方法もシンプルです。何もメッセージが出なければモジュールが入っているエラーメッセージが出ればモジュールは入っていないとても解りやすいですね。僕は単にモジュールが入っているかだけ知りたい時には良くこの手を使っています。モジュール名とperldocを実行して、モジュールに関する説明が出てくればインストール済みエラーメッセージが出てくればインストールされていないという調べ方もあります。こちらはモジュールがインストールされていた時にそのモジュールの説明が出てくるので、「もうとにかく大急ぎでモジュールがあるか調べたい!」という人みたいな焦っている人には向かないかも知れません(笑インストールされているモジュールの.pmファイルのパスを調べたい人向け「モジュールのソースコードがインストールされたファイルパスが知りたい」人向けです。こちらは少々時間が掛かります。シェル上で以下を実行してください。lessこちらは@INC*1に置いてあるファイル一覧をfindで検索、全表示しています。findのオプションを上手く使えば特定の名前を含むモジュールだけを調べる事が出来ますので、そちらも試してみてください。/usr/local/lib/perl5/site_perl/5.8.9/Pod/Find.pm/usr/local/lib/perl5/site_perl/5.8.9/Module/Install/Admin/Find.pm/usr/local/lib/perl5/site_perl/5.8.9/Module/Find.pm/usr/local/lib/perl5/site_perl/5.8.9/PPI/Find.pm/usr/local/lib/perl5/site_perl/5.8.9/Feed/Find.pm/usr/local/lib/perl5/5.8.9/File/Find.pm/usr/local/lib/perl5/5.8.9/Pod/Find.pm#この様に、::で区切られた最後のブロックを検索対象とします。例の場合では太字の行がFile::Findのソースコードのパスになります。ひとつだけ注意しておかなければなりません。@INCの検索対象はカレントディレクトリも含むため、コマンドを実行するカレントディレクトリ次第ではfindが延々と続いてしまう可能性があります。この方法を使う場合にはマシンのリソースとカレントディレクトリにご注意ください。カレントディレクトリが入っている!おわりに最初にも言いましたが、今回取り上げた2つの方法は比較的簡単なやり方です。Perlのモジュールのインストール先を調べる方法は他にもまだまだありますので、ある程度Perlに慣れたら他の方法なんかも調べてみるとPerlのことがもっとよく理解出来てくるようになると思います。なにやらここ最近未熟ながらも仕事やらプライベートやらで他人にPerlを教える機会が増えて来たので、今後も似たような防備録的・資料的な意味でこういう記事を書く事になりそうです。気が利いた事や技術的に説得力がある事を書ければいいんですけど、如何せんそうも行かないのが悩みどころですね。精進しないと......*1:Perlライブラリを検索する対象になるディレクトリ。昨...2007-03-18【サーバ運用】細かいカスタマイズとスクリプトの書き直し今日は細かい作業を沢山こなしました。特殊変数$nはスコープの影響を受ける月別アーカイブ参加グループプログラミングインターネットはてなブログをはじめよう!wizard_blueさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。