在Perl中,无法在@INC错误中找到packgeName.pm

abc*_*abc 6 perl module package

这是一个math.pm具有2个基本功能的模块add和multiply:

package Math;
use strict;
use warnings;
use Exporter qw(import);
our @EXPORT_OK = qw(add multiply); 

sub add {
my ($x, $y) = @_;
return $x + $y;
}

sub multiply {
my ($x, $y) = @_;
return $x * $y;
}

1;
Run Code Online (Sandbox Code Playgroud)

这是script.pl调用add函数的脚本:

#!/usr/bin/perl
use strict;
use warnings;

use Math qw(add);
print add(19, 23);
Run Code Online (Sandbox Code Playgroud)

它给出了一个错误:

无法在@INC中找到math.pm <@INC包含:C:/ perl/site/lib C:/ perl/lib.>在C:\ programs\script.pl第5行.BEGIN失败 - 编译中止C:\ programs\script.pl第5行.

如何解决这个问题呢?

ser*_*sat 9

使用lib

向脚本添加use lib语句会将该目录添加到该特定脚本的@INC.无论是谁以及在什么环境中运行它.

在尝试加载模块之前,您必须确保使用lib语句:

use lib '/path/to/module';
use Math qw(add);
Run Code Online (Sandbox Code Playgroud)

有关设置@INC的更多详细信息,请查看以下内容:

如何包含位于不同目录中的Perl模块