我有一个perl脚本myscript.pl
和配置文件myscript.conf
。两者都在同一目录中,我已经包括在myscript.pl
通过require 'myscript.conf';
正确要求路径perl
conf如果我运行myscript喜欢./myscript.pl
,它工作正常。如果我用全路径运行像/full/path/myscript.pl
它将引发错误
Can't locate myscript.conf in @INC
我怎样才能解决这个问题?
我有一个perl脚本myscript.pl
和配置文件myscript.conf
。两者都在同一目录中,我已经包括在myscript.pl
通过require 'myscript.conf';
正确要求路径perl
conf如果我运行myscript喜欢./myscript.pl
,它工作正常。如果我用全路径运行像/full/path/myscript.pl
它将引发错误
Can't locate myscript.conf in @INC
我怎样才能解决这个问题?
错误不是因为您在运行程序时使用完整路径,而是因为当前工作目录与脚本的位置不同。当前目录.
出现在@INC
中,因此perl将始终在那里查找模块,但当前目录必须正确才能找到它们。
添加库的位置,是相对于脚本本身的位置的规范方法是使用FindBin
模块,这样
use FindBin;
use lib $FindBin::Bin;
require 'myscript.conf';
添加
use lib '/full/path/'
在你的程序的开头。这将添加到路径@INC
或者,可以使用'PERL5LIB =/full/path// full/path/myscript.pl'来代替编辑文件。 – rubikonx9
我无法确定完整路径。用户可以在任何目录中部署脚本并运行它。 – Harikrishnan
@Harikrishnan所以你应该添加一个shell脚本,在运行该程序之前更改目录。 – Jens
显示你的代码。 – Jens
这只是一个路径问题。我不认为代码在这里是相关的。 – Harikrishnan
@Harikrishnan这不是求助的最有效方式。显示代码将是一个优势。 –