綾小路龍之介の素人思考

[perl] ライブラリ検索パスを実行時に追加-Iオプション

検索パスを追加する方法はperlプログラム自身に書き込む方法がある。ただし、プログラムの改変ができない場合は-Iオプションを使って起動時にライブラリ検索パスを追加することが出来る。この場合検索パスの最初に加えられることになる。

例えば以下の様なhoge.plを作ったとする。これを走らせるとhoge.pmが見つからないといわれる。

$ cat hoge.pl
#!/usr/bin/perl
use hoge;
$ perl hoge.pl
Can't locate hoge.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at hoge.pl line 2.
BEGIN failed--compilation aborted at hoge.pl line 2.

そこで./libをライブラリ検索パスに追加する。エラーが出るが、検索パスは@INCの最初に追加されていることがわかる。./lib/hoge.pmがあれば清浄終了するはずである。

$ perl -I./lib hoge.pl
Can't locate hoge.pm in @INC (@INC contains: ./lib /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at hoge.pl line 2.
BEGIN failed--compilation aborted at hoge.pl line 2.

リファレンス

  1. KMsWiki: Perl/@INC - Perlのライブラリの検索PATHを格納した配列のこと。 例えば、コマンド...
  2. Perl で @INC にパスを追加
  3. perl lib 追加 - Google 検索
  4. lib - モジュールの検索パスの追加 / Perlモジュール徹底解説 - サンプルコードによるPerl入門

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2009-11-30T08:02:56+09:00
  2. Modified: 2009-11-30T08:02:56+09:00
  3. Generated: 2017-07-27T23:09:20+09:00