这是一个模块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.pl
和math.pm
不在同一目录中,则相应地调整。
同样,如果文件命名为math.pm
,而您使用use Math;
和package Math;
,则可能会出现问题。最好重命名文件,以便拼写一致。
ren math.pm Math.pm