我有一个脚本,它使用标准Perl库外部的模块,并希望以某种方式使用它们。 我没有权限将它们安装到Perl lib目录中,并且想知道我是否可以将这些外部模块驻留在我的脚本目录中。

我已经阅读了有关使用FindBin的内容,但似乎无效。 我正确使用它吗?

现在我想使用我想要使用的3个模块(2个是目录)。 因此,假设我的脚本位于Dir1中,那么我的模块将位于Dir1的子目录中,称为Dir2。

所以假设FindBin找到了Dir1,那么我所要做的就是这个?

use FindBin '$Bin';
use Dir2 "$Bin/Dir2";
use Dir2::SubDir_ofDir2_1::Module1;
use Dir2::Module2;
use Dir2::Module3;

我的程序似乎运行但它没有做任何事情。 所以我很确定它没有正确导入模块。

谢谢

===============>>#1 票数:7 已采纳

正确的方法更可能是:

use lib "$FindBin::Bin/Dir2";
use SubDir::Module1;

要么:

use lib $FindBin::Bin;
use Dir2::Subdir::Module;

两者都会找到文件,行为将取决于模块是否将自己声明为内部package Dir2

查看FindBinlib的文档。

  ask by urbanspr1nter translate from so

未解决问题?本站智能推荐:

5回复

为什么即使用FindBin调整@INC后,我的Perl脚本也找不到我的模块?

我希望能够使用保存在我的源代码库的lib目录中的模块,并且我希望开发人员使用我正在编写的脚本的唯一先决条件是安装标准的 Perl,但我是不知道如何做到这一点。 在我的剧本中,我有 我把模块放在./lib中。 我验证了模块存在的实际位置(通过重命名并导致模块失败)。 但是,即使模
1回复

twiki“无法加载perl模块FindBin。”

我试图让TWIKI正常工作(虚拟Server Hosteurope .. PLESK 11 CentOS 6)。 当我运行配置脚本时,会出现以下错误: 我对shell的使用只有很少的知识,而对Perl的经验则少得多。 我以root身份运行configure脚本。 据我所知,Ap
2回复

在perl脚本中更改目录以查找模块

如果在使用Cwd时例如在路径C:\\ folder1 \\ folder2中有一个script.pl,则它当然会返回C:\\ folder1 \\ folder2作为当前工作目录。 我想知道是否可以使用以下命令在script.pl中更改工作目录 因此,我现在可以在C:\\ folder
3回复

在perl中使用FindBin时导入库子例程

编辑很抱歉给您带来混乱,这是我更新的问题。 我在我的perl脚本中使用FindBin像这样: 这有效: 但这不是: 编辑2 这是multi_lib.pm的外观: ps我不知道@ISA代表什么,如果添加my是可以的...我遵循了Exporter的prel
3回复

什么是Perl的FindBin的Python等价物? [重复]

这个问题在这里已有答案: 如何正确确定当前脚本目录? 13个答案 在Perl中, FindBin模块用于定位原始脚本的目录。 在Python中获取此目录的规范方法是什么? 我见过的一些选项: os.path.dirname(os.path.real
1回复

Perl-从主脚本中的其他目录获取模块的ABS路径

我创建了一个简单的perl脚本,该脚本分为2个文件main.pl和content.pm主脚本位于Project目录中,而content.pm (模块)位于Project/utils目录中。 现在,我想在main.pl使用content.pm ,我做了这样的事情来使用此模块: 但是,如果
1回复

Perl在与脚本相同的目录中找不到模块

我需要将所有自定义模块与脚本保存在相同的目录中。 我不断收到此错误,表明Perl无法“看到”我声明的模块 全局符号“ $ employment_type”要求在Early_enrollments_by_term.pl第260行使用显式包名称。 由于编译错误,中止early
3回复

Perl脚本或模块(例如版本控制)中的目录文件?

我需要更新Oracle的RDBMS二进制文件。 我正在寻找Perl脚本或模块,该脚本或模块将向我显示哪些文件已更改(新文件,已删除文件,已修改文件等)。 我计划在修补之前和之后运行脚本,然后比较结果。 我将不胜感激,因为Google对于“ perl比较”短语返回的结果过多。 最好
4回复

错误的解释器:perl脚本中没有这样的文件或目录(适用于perl脚本的初学者)

我们创建了1个perl脚本,它将从一台远程服务器运行并访问该服务器,并将通过运行特定进程的top命令来获取数据。 但是,每当我尝试运行脚本时,都会遇到错误。 ./script_GS.pl -bash: ./script_GS.pl: /usr/local/share/perl^M: ba
1回复

Perl脚本(用于调用Mac :: AppleScript Perl模块)

我正在使用Shell和AppleScript脚本设置一些自动化。 我的几个模块需要将几个参数传递给AppleScript。 尽管有几种方法可以这样做,但是经过一些研究,我找到了“ Mac :: AppleScript Perl模块”,它看起来确实很有前途。 但是,它需要/ usr / lo