我是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
方法而不提及它的模块名称。我google了&在我的Calcu.pm
use Exporter;
@ISA = (Exporter);
@EXPORT = qw (add);
&安培;在add.pl中将print Calcu::add(50, 60);
替换为print add(50, 60);
,但它仍然给我以下错误。
Undefined subroutine &main::add called at add.pl
有没有办法可以直接在我的ad.pl中调用add子程序?
答案 0 :(得分:10)
在Calcu.pm
中将Select TOP 1 emp.eid, emp.ename, sal.salary
from Employee emp
join Salary sal on emp.salaryID = sal.salaryID
where DATEPART(yy,sal.date) = 2014
order by sal.salary desc
更改为package Calc;
包名称不匹配会给您带来麻烦。
请仔细阅读perldoc Exporter以了解详情。
查看perldoc perlootut,了解perl创建对象的不同方法。