How to modify @INC variable...

How to modify @INC variable...

@INC 是Perl裡面相當重要的library path的var..
一般是建議不要將這個變數做任何更動..不然可能某些
function不能使用..

因此如果要用自己寫的module...可以使用
use lib '/xxx/xxx/xxx'
use ABC;
使用ABC module...

但是有時候你可能不想這麼麻煩,那麼有幾個方法各位可以試試:
1. perl -I/xxx/xxx/xxx test.pl
  如此/xxx/xxx/xxx這個目錄就會被放進@INC中..
2.定義Env variable PERL5LIB..把你的directory 定義在這個變數中..
3.直接在程序中..使用@INC這個變數..
unshift(@INC,"/xxx/xxx/xxx";

最近在K Advance Perl Programming..有些技巧不錯..
其他以後再做介紹...
感谢极了
为什么设不对???

use lib '/apps/hp11-64/perl5.6/lib/5.6.0';
unshift(@INC,"/apps/hp11-64/perl5.6/lib";

上面两行我都试过了.
为什么呀?
程序还是到/opt/目录下去找.
請上CPAN將POSIX的module抓回來...
untar後..利用
perl Makefile.PL
make;
make install;
安裝...
照你這種情形..表示POSIX需要compile過才行..
不過大部分的module..都可以直接用..
還有一個更直接的方法,請將POSIX直接copy到
@INC所列出來的目錄下試試看..如果還是不行..
你就要照著上面提到的方法...去做...
Try it..


QUOTE:
3.直接在程序中..使用@INC這個變數..
unshift @INC,"/xxx/xxx/xxx";

这样写是有问题的吧
因为unshift是在runtime的时候进行的,所以compile的时候就会出错
应该用BEGIN块包一下

[Copy to clipboard] [ - ]
CODE:
BEGIN {
3.直接在程序中..使用@INC這個變數..
unshift @INC,"/xxx/xxx/xxx";
}

好像是这样的
我来跟一篇
How to modify @ISA  
什么意思?