[Perl] 使用中のモジュールのインストール先パスを取得

Perlで使用中(use または require済み)のモジュールが
インストールされているパスは変数 %INC に入ってる。
$INC{モジュール名}として使用する。

例えば、XML::FeedPP モジュールをインストールした後で
どこにインストールされている.pmファイルを利用しているかを
確認するソースは以下の通り。

ソース:
use XML::FeedPP;
print $INC{"XML/FeedPP.pm"}, "\n";'

実行結果:
/usr/local/lib/perl5/site_perl/5.005/XML/FeedPP.pm


Perl標準添付のモジュールを、CPAN 経由でバージョンアップしたときは、
サーバ内に複数のバージョンの同一モジュールが入る状態になるから、
どっちのファイルを今自分が使っているのか知りたいときに、たいていは
$VERSION でも区別できるけど、この %INC なら確実に区別できる。

また、そのモジュールのソース内部でも、自分のパスを知ることで、
自モジュールが使うデータファイルとかのパスを知ることができる。

#グローバル変数@INCにロード元パスの一覧が入っていて、use lib とかで
#増やすのはよくやるけど、%INCというのは使ったことがなかった。。。
#まだまだ修行が足りんのう。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック