包括perl模块在单个位置的不同目录中,可用于多个文件

时间:2016-09-09 09:40:10

标签: perl

让我描述一下我的问题。

我创建了一个新的perl模块 例如:

模块:sample / lib / module / sample.pm

setenv SAMPLE / local / username / sample

我在多个文件中使用此模块并使用

使用lib“$ ENV {'SAMPLE'} / lib”;

在我使用模块的每个文件中。

有更好的解决方案吗?而不是在每个文件中添加要搜索的lib位置。

我尝试在主脚本中添加它,调用其他脚本,但它不起作用。我收到错误lib找不到@INC。

1 个答案:

答案 0 :(得分:1)

基本上有三种方法可以操纵Perl的@INC变量(这是你在这里尝试做的)。

  1. 您可以在程序中使用use lib。这可能是最好的方法,但它可能导致必须编辑大量文件(正如您已经解决的那样)。
  2. 您可以使用-I命令行选项(在您调用Perl时或在您的shebang行上)。我很少见到这种方法。
  3. 您可以将PERL5LIB环境变量设置为以冒号分隔的目录列表。这意味着您可以避免将目录硬编码到每个文件中,但是在执行程序之前需要确保正确设置了环境。
  4. 我认为在你的情况下,我会考虑选项3。