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