FrontPage | changes | index | create | search | preferences |

@INC

Last-Modified: Sun May 30 14:54
edit | copy | diff | rlog | raw

Perlのライブラリの検索PATHを格納した配列のこと。

例えば、コマンドラインから、次を実行すると、

 % perl -le 'print for @INC'
 /usr/local/lib/perl5/5.8.8/BSDPAN
 /usr/local/lib/perl5/site_perl/5.8.8/mach
 /usr/local/lib/perl5/site_perl/5.8.8
 /usr/local/lib/perl5/site_perl
 /usr/local/lib/perl5/5.8.8/mach
 /usr/local/lib/perl5/5.8.8
 .

の様に表示される*1ので、Perlはこの順序に従ってライブラリを検索する*2

配列なので、プログラム中、

 unshift @INC, '/home/user/lib/';

の様に追加も可能。

また、-Iオプションを用いることにより、/home/user/libを検索PATHに加えたければ、

 % perl -I/home/user/lib ./test.pl

の様に、実行時に指定も可能。

さらに環境変数PERL5LIBを用いれば、

 % setenv PERL5LIB /home/user/lib
 % perl -le 'print for @INC'
 /home/user/lib
 /usr/local/lib/perl5/5.8.8/BSDPAN
 /usr/local/lib/perl5/site_perl/5.8.8/mach
 /usr/local/lib/perl5/site_perl/5.8.8
 /usr/local/lib/perl5/site_perl
 /usr/local/lib/perl5/5.8.8/mach
 /usr/local/lib/perl5/5.8.8
 .

の様に*3、予め指定しておく事も出来る。

*1プラットフォームやPerlのバージョンによって異なる。ここでは、FreeBSD上のPerl 5.8.8で説明。

*2最後にカレントディレクトリ( . )が入っていることに注意。

*3cshでの説明。

関連情報

  • Perl - Larry Wallによって開発されたスクリプト言語。Practical ...