2013-01-18 69 views
-2

定位new.pm我試圖運行我的其他shell腳本內的Perl腳本,但我面臨以下障礙:不能在@INC

在@公司無法找到new.pm(@INC包含:/usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1/usr/lib/perl5/usr/share/perl5 /usr/lib/perl/5.10/usr/share /perl/5.10/usr/local/lib/site_perl

我已經專門設置了額外的本地perl腳本,即我的Perl腳本(test.pl)中的「new.pm」,但錯誤仍然出現的路徑。(perl -V)顯示了我本地Perl的路徑,我還使用命令「PERL5LIB」在我的配置文件中設置了我的「new.pm」的路徑

但是,當我在命令行上運行該腳本時:

./test.pl它確實像魅力一樣工作。

PS。 she-bang線已正確設置。 PSS。平臺:linux,OS_vers = 2.6.32-5-amd64

有何評論?

+0

你在使用「use lib $ PATH;」 ? –

+0

如何在shell腳本中調用'test.pl'('perl。/ test.pl'或'。/ test.pl')? 'perl'在shell腳本中給你什麼? – Zaid

+1

你的問題是:「這行不通,但我做的一切正確!」 (「我已經專門設置了額外的本地Perl腳本的路徑」)或許你不應該那麼肯定? – ikegami

回答

2

有多種方法可以做到這一點,但我不認爲設定路徑就是其中之一。如果 「new.pm」 是/my/dir目錄,嘗試任何這些:

perl -I/my/lib script-that-calls-new.pl 

use lib '/my/lib'; ## add this before "use new;" 

BEGIN { push @INC, '/my/lib'; }; ## same as "use lib" example 

export PERL5LIB=/my/lib:$PERL5LIB 

路徑告訴你的shell在哪裏尋找exec utables。上面的例子都告訴perl在哪裏找到庫。