如何从perl中的模块导入子例程

时间:2015-10-09 06:41:23

标签: perl module export subroutine

我是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子程序?

1 个答案:

答案 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创建对象的不同方法。