正确需要路径perl

时间:2015-04-28 06:46:35

标签: perl path require

我有一个perl脚本myscript.pl和配置文件myscript.conf。两者都在同一目录中,我已将myscript.pl中的配置文件包含在require 'myscript.conf';

如果我像./myscript.pl一样运行myscript,它运行正常。如果我使用像/full/path/myscript.pl这样的完整路径运行,则会引发错误

Can't locate myscript.conf in @INC

如何解决此问题?

2 个答案:

答案 0 :(得分:4)

错误不是因为您在运行程序时使用完整路径,而是因为当前工作目录与脚本的位置不同。当前目录.出现在@INC中,因此perl将始终查找模块,但当前目录必须正确才能找到它们。

添加与脚本本身位置相关的库位置的规范方法是使用FindBin模块,就像这样

use FindBin;
use lib $FindBin::Bin;

require 'myscript.conf';

答案 1 :(得分:1)

添加

use lib '/full/path/'

在你的计划开始时。这将添加@INC

的路径