如何从 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 中创建对象的不同方法的概述。