2015-10-09 15 views
3

我在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方法而不提及其模块名称。我用Google搜索添加&以下线在我Calcu.pm

use Exporter; 

@ISA = (Exporter); 
@EXPORT = qw (add); 

&取代print Calcu::add(50, 60);在add.pl print add(50, 60);,但它仍然是给我下面的错误。

Undefined subroutine &main::add called at add.pl 

是否有任何可能的方式,这样我可以直接打电话给我ad.pl添加子程序?

回答

10

变化package Calc;package Calcu;在Calcu.pm

不匹配的包名是什么给你的麻烦。

有一个读通过perldoc Exporter的血淋淋的细节。

看一看perldoc perlootut为不同的方式在Perl中创建对象的概述。