perl 为@INC添加当前目录路径
问题:
perl 引用自己编写的脚本module时,报错:
Can't locate XXXXX.pl in @INC (@INC contains: /usr/local/lib/perl5/site_perl/5.28.1/x86_64-linux /usr/local/lib/perl5/site_perl/5.28.1 /usr/local/lib/perl5/5.28.1/x86_64-linux /usr/local/lib/perl5/5.28.1) at ./demo.pl line 8.
从(@INC contains: …)可以发现,
利用require引入自己编写的module时,module所在路径并未被@INC纳入环境变量!!!
解决方案:
将原perl代码增加一行
push(@INC,"/your/file/path");
demo.pl 原文件内容如下
#!/usr/bin/perl
require "XXXXX.pl";
更改后代码如下:
#!/usr/bin/perl -w
push(@INC,"/your/file/path");
require "XXXXX.pl";
然后demo.pl文件就能顺利引用XXXXX.pl文件的内容了!
/your/file/path
处改为你自己的路径
我自己改成了/var/www/cgi-bin
本人操作环境:
阿里云 + Ubuntu 18.04 + perl5
参考: