我有一个perl脚本myscript.pl
和配置文件myscript.conf
。两者都在同一目录中,我已将myscript.pl
中的配置文件包含在require 'myscript.conf';
如果我像./myscript.pl
一样运行myscript,它运行正常。如果我使用像/full/path/myscript.pl
这样的完整路径运行,则会引发错误
Can't locate myscript.conf in @INC
如何解决此问题?
答案 0 :(得分:4)
错误不是因为您在运行程序时使用完整路径,而是因为当前工作目录与脚本的位置不同。当前目录.
出现在@INC
中,因此perl将始终查找模块,但当前目录必须正确才能找到它们。
添加与脚本本身位置相关的库位置的规范方法是使用FindBin
模块,就像这样
use FindBin;
use lib $FindBin::Bin;
require 'myscript.conf';
答案 1 :(得分:1)
添加
use lib '/full/path/'
在你的计划开始时。这将添加@INC