我有一个csh脚本,我从中调用了一个perl脚本。
set xyz = `perl my_perl.pl`;
以下是my_perl.pl
的内容#usr/bin/perl
BEGIN {
@INC = ('/path/to/my/lib/folder', @INC);
}
use my_lib;
sub test {
my_lib::foo();
}
所以,当我像这样运行我的csh时
./run
它说Can't locate my_lib.pm in @INC
如果我像perl -e my_perl.pl
一样单独运行my_perl,它可以正常工作。
我如何从我的csh中完成这项工作?我在这里做了一些检查,似乎它没有执行BEGIN块。如果我在BEGIN中放置print "test";
,它就不起作用。
请帮忙。
(注意:我必须使用csh,所以请不要建议我不要使用csh)
答案 0 :(得分:0)
根据@Dre的建议,我补充道
use lib 'blah blah';
它似乎正在发挥作用。 (虽然我仍然不知道我这样做的方式有什么问题)
感谢大家的建议。
答案 1 :(得分:-1)
您是否尝试将自定义库包含在PERL5LIB环境中?
从代码中删除BEGIN块并尝试:
setenv PERL5LIB "/path/to/my/lib/folder"
./my_perl.pl