push @INCとuse lib

Perlのモジュールを利用する場合、useを使ってロードするわけですが(何を今さら)、そのモジュールをパスの通っていない適当なディレクトリに置きたい場合、スクリプト内でパスを通してやらなければなりません(何を今さら)。パスを通す方法は@INCにpushしてやるとかlibプラグマを使うとかなわけです。

で、ですよ。

push @INC, 'lib';
use Foo;

はダメで、

use lib 'lib';
use Foo;

としないとならないらしい(via 続・初めてのPerl)。useはコンパイル時に処理されるという仕様によるものだそうで。

viaキター。

Blosxom 3.0の起動CGIをいじっていて詰まり、たらたらPerl本漁ってたら見つけたりする。記憶力無いのか。