えーっ

perlbrewなperlで共通のパスを@INCに入れたい、もしくはperl実行時にごにょごにょしたい話 - (ひ)メモ
perlbrewでsitecustomizeを有効にしてビルドするには
perlbrew install --notest 5.16.1 \
  --sitecustomize \
    /usr/oreno/etc/perl/sitecustomize.pl
とします

そんな親友を助けるためだけに契約するようなことをしなくても、全ての@INCをプロセスが生まれる前に上書きできますよ。

-Iさえあれば。

perlrun - perldoc.perl.org

-Idirectory

Directories specified by -I are prepended to the search path for modules (@INC ).
実際に見てみましょう。
% cat /Users/dankogai/tmp/yInit.pm
local $\ = "\n";
print for @INC;
1;
% perl -MyInit -e 1
Can't locate yInit.pm in @INC (@INC contains: /usr/local/lib/perl5/site_perl/5.16.1/darwin-thread-multi-2level /usr/local/lib/perl5/site_perl/5.16.1 /usr/local/lib/perl5/5.16.1/darwin-thread-multi-2level /usr/local/lib/perl5/5.16.1 .).
BEGIN failed--compilation aborted.
% perl -I/Users/dankogai/tmp -MyInit -e 1
/Users/dankogai/tmp
/usr/local/lib/perl5/site_perl/5.16.1/darwin-thread-multi-2level
/usr/local/lib/perl5/site_perl/5.16.1
/usr/local/lib/perl5/5.16.1/darwin-thread-multi-2level
/usr/local/lib/perl5/5.16.1
.

先史時代(Perl 4以前)から存在する由緒あるオプションです。-Mより古い。

Perl Cookbook にも Recipe 12.8 で紹介されてます。

PERL5LIB(でパスを指定)やPERL5OPT(で-Mlib=/path/to)でもできますが、perl -MOrenoConf とした場合はまだ環境変数が評価される前なのでCan't locateと怒られてしまいます。

確かに-Mlib=/path/toだとこうなります。

% env PERL5OPT=-Mlib=/Users/dankogai/tmp perl -MyInit -e 1
Can't locate yInit.pm in @INC (@INC contains: /usr/local/lib/perl5/site_perl/5.16.1/darwin-thread-multi-2level /usr/local/lib/perl5/site_perl/5.16.1 /usr/local/lib/perl5/5.16.1/darwin-thread-multi-2level /usr/local/lib/perl5/5.16.1 .).
BEGIN failed--compilation aborted.

が、 -I/path/toPERL5LIB も使えます。

% env PERL5OPT=-I/Users/dankogai/tmp perl -MyInit -e 1
/Users/dankogai/tmp
/usr/local/lib/perl5/site_perl/5.16.1/darwin-thread-multi-2level
/usr/local/lib/perl5/site_perl/5.16.1
/usr/local/lib/perl5/5.16.1/darwin-thread-multi-2level
/usr/local/lib/perl5/5.16.1
.
% env PERL5LIB=/Users/dankogai/tmp perl -MyInit -e 1 
/Users/dankogai/tmp
/usr/local/lib/perl5/site_perl/5.16.1/darwin-thread-multi-2level
/usr/local/lib/perl5/site_perl/5.16.1
/usr/local/lib/perl5/5.16.1/darwin-thread-multi-2level
/usr/local/lib/perl5/5.16.1
.

なのでこれもOK。

% env PERL5LIB=/Users/dankogai/tmp PERL5OPT=-MyInit perl -e 1
/Users/dankogai/tmp
/usr/local/lib/perl5/site_perl/5.16.1/darwin-thread-multi-2level
/usr/local/lib/perl5/site_perl/5.16.1
/usr/local/lib/perl5/5.16.1/darwin-thread-multi-2level
/usr/local/lib/perl5/5.16.1
.

よって shebang でこうすることさえできます。

% cat ~/tmp/hello.pl 
#!/usr/bin/env PERL5LIB=/Users/dankogai/tmp PERL5OPT=-MyInit perl
print "Hello, $^V", "\n"
% ~/tmp/hello.pl
/Users/dankogai/tmp
/usr/local/lib/perl5/site_perl/5.16.1/darwin-thread-multi-2level
/usr/local/lib/perl5/site_perl/5.16.1
/usr/local/lib/perl5/5.16.1/darwin-thread-multi-2level
/usr/local/lib/perl5/5.16.1
.
Hello, v5.16.1

@INCにお困りの方は、-Iを忘れずに。

Dan the Perl Monger