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

在Perl中,can';在@INC错误中找不到packgeName.pm,perl,module,package,Perl,Module,Package,这是一个模块math.pm,具有两个基本函数加法和乘法: 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; 这是调用add函数的script

这是一个模块
math.pm
,具有两个基本函数加法和乘法:

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;
这是调用add函数的script
script.pl

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

use Math qw(add);
print add(19, 23);
它给出了一个错误:

在C:\programs\script.pl第5行的@INC中找不到math.pm。 BEGIN失败--编译在C:\programs\script.pl第5行中止

如何解决这个问题?

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

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

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


使用数学之前,将以下内容添加到
script.pl

use FindBin qw( $RealBin );
use lib $RealBin;
如果
script.pl
math.pm
不在同一目录中,请进行相应调整

此外,如果文件名为
math.pm
并且您使用
use math,则可能会出现问题
包数学。最好重命名该文件,使拼写保持一致

ren math.pm Math.pm

问题是什么?有什么问题吗?嘿@serenesat prob在这段代码中不起作用,给我这样的错误也没问题。如果将两个程序放在同一路径上。当我运行这个程序时,在错误消息中显示
math.pm
并且你的代码显示
包数学时,不要知道是什么错误(在名为
Math.pm
的文件中)-必须使用正确的大小写。检查模块的文件名和脚本
使用数学将导致显示错误消息。
ren math.pm Math.pm