在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函数的scriptscript.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