怎么更改@INC搜寻路径

怎么更改@INC搜寻路径

怎么更改@INC搜寻路径
我现在有些程序要测试,但是我的模块不是采用默认的安装方式,程序员又没有在程序里加use lib所以现在总是提示找不到某些模块,大家有没有什么好的方法解决这个问题,我想例如更改环境变量(set PERLLIB=/usr/test/perl/module)
系统环境
hp unix + perl 5.6.1 + ksh+apache 1.3 + modperl




   

你如果不在代码中加use li.
你如果不在代码中加use lib的话,通过修改代码别的地方是无法做到的。你也无法使用findbin因为默认modperl执行目录是/dev/null

给你三个终极解决方案:
1、在httpd.conf里使用PerlVar LIB "/home/usr/local"方法,语法我不知道对不对意思就是这个意思
2、在httpd.conf里是用require方法加载一个startup.pl在这个代码里定义use lib
3、在你的代码中使用require "abc.pm"代替use abc的方法。

第三个方法我再详细讲一下:
首先你的得到你当前代码所在的位置。那么虽然findbin不好用我还是有招的。
use File::Basename;
$current_dir = __FILE__; $current_dir = dirname($current_dir);
require "$current_dir/test.pm";
这样就可以了。
尝试中
我先试试
新方法
在@INC里添加新路径的一个新方法:
首先,
strings /usr/local/bin/perl |grep LIB
会看到
PERL5LIB
PERLLIB
然后用 export PERL5LIB=/temp/perl/lib
就会发现@INC里多了自己添加的路径,
perl -V
%ENV:
PERL5LIB="/temp/perl/lib"
@INC:
/temp/perl/lib/5.6.0/i386-linux
/temp/perl/lib/5.6.0
/temp/perl/lib/i386-linux
/temp/perl/lib
/usr/lib/perl5/5.6.0/i386-linux
/usr/lib/perl5/5.6.0
/usr/lib/perl5/site_perl/5.6.0/i386-linux
/usr/lib/perl5/site_perl/5.6.0
/usr/lib/perl5/site_perl