如何从 perl 中的模块导入子程序
How to import subroutines from modules in perl
我是 perl 的新手。我有这个示例代码。
#! /usr/bin/perl
# Calcu.pm
package Calc;
sub add {
( $one , $two ) = @_;
$total = $one + $two;
return $total;
}
1;
&
#! /usr/bin/perl
# add.pl
use Calcu;
print Calcu::add(50, 60);
脚本 add.pl 运行 很好。但我想在不提及其模块名称的情况下调用 add
方法。我用谷歌搜索并在 Calcu.pm
中添加了以下几行
use Exporter;
@ISA = (Exporter);
@EXPORT = qw (add);
& 在 add.pl 中用 print add(50, 60);
替换 print Calcu::add(50, 60);
但它仍然给我以下错误。
Undefined subroutine &main::add called at add.pl
有什么方法可以让我直接在 ad.pl 中调用添加子程序吗?
在Calcu.pm
中将package Calc;
更改为package Calcu;
包名不匹配是给您带来麻烦的原因。
通读 perldoc Exporter 了解血淋淋的细节。
查看 perldoc perlootut 以了解在 perl 中创建对象的不同方法的概述。
我是 perl 的新手。我有这个示例代码。
#! /usr/bin/perl
# Calcu.pm
package Calc;
sub add {
( $one , $two ) = @_;
$total = $one + $two;
return $total;
}
1;
&
#! /usr/bin/perl
# add.pl
use Calcu;
print Calcu::add(50, 60);
脚本 add.pl 运行 很好。但我想在不提及其模块名称的情况下调用 add
方法。我用谷歌搜索并在 Calcu.pm
use Exporter;
@ISA = (Exporter);
@EXPORT = qw (add);
& 在 add.pl 中用 print add(50, 60);
替换 print Calcu::add(50, 60);
但它仍然给我以下错误。
Undefined subroutine &main::add called at add.pl
有什么方法可以让我直接在 ad.pl 中调用添加子程序吗?
在Calcu.pm
中将package Calc;
更改为package Calcu;
包名不匹配是给您带来麻烦的原因。
通读 perldoc Exporter 了解血淋淋的细节。
查看 perldoc perlootut 以了解在 perl 中创建对象的不同方法的概述。