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

use*_*539 4 perl module export subroutine

我是perl的新手.我有这个示例代码.

#! /usr/bin/perl
# Calcu.pm

package Calc;

sub add {
    ( $one , $two ) = @_;
    $total = $one + $two;
    return $total;
    }

1;
Run Code Online (Sandbox Code Playgroud)

&

#! /usr/bin/perl
# add.pl

use Calcu;

print Calcu::add(50, 60);
Run Code Online (Sandbox Code Playgroud)

脚本add.pl运行正常.但我想调用该add方法而不提及其模块名称.我用Google搜索并在我的Calcu.pm中添加了以下行

use Exporter;

@ISA = (Exporter);
@EXPORT = qw (add);
Run Code Online (Sandbox Code Playgroud)

print Calcu::add(50, 60);并print add(50, 60);在add.pl中替换,但它仍然给我以下错误.

Undefined subroutine &main::add called at add.pl 
Run Code Online (Sandbox Code Playgroud)

有没有办法可以直接在我的ad.pl中调用add子例程?

xxf*_*xxx 10

更改package Calc;到package Calcu;在Calcu.pm

包名称不匹配会给您带来麻烦.

请阅读perldoc Exporter了解详细信息.

查看perldoc perlootut,了解perl创建对象的不同方法.