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



这是一个模块math.pm,具有2个基本函数:

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;

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

#!/usr/bin/perl
use strict;
use warnings;
use Math qw(add);
print add(19, 23);

给出错误:

找不到数学。C:/perl/lib .> at C:programsscript.pl第5行。在C:programsscript.pl行5.

如何解决这个问题?

use lib

在脚本中添加一个use lib语句将为该特定脚本添加目录到@INC。不管谁在什么环境下运行它

你只需要确保在尝试加载模块之前有use lib语句:

use lib '/path/to/module';
use Math qw(add);

有关设置@INC的详细信息,请参阅:

如何包含在不同目录下的Perl模块

use Math ...;前面添加script.pl:

use FindBin qw( $RealBin );
use lib $RealBin;

如果script.plmath.pm不在同一目录中,则相应地调整。

同样,如果文件命名为math.pm,而您使用use Math;package Math;,则可能会出现问题。最好重命名文件,以便拼写一致。

ren math.pm Math.pm

最新更新