正确使用这个Perl模块

正确使用这个Perl模块,perl,perl-module,Perl,Perl Module,我已经看了几个使用Perl模块的例子,但仍然不能正确地理解它。我将遵循以下教程:。对于以下.pl和.pm文件,我调用 $perl Solver.pl 并有以下错误 Undefined subroutine &main::mergeSort called at Solver.pl line 13. Solver.pl 下午三时 :默认值具有优先于您的内置定义。它导出默认情况下导出的所有符号,也就是说@EXPORT中的所有符号。您应该使用: our @EXPORT = qw( m

我已经看了几个使用Perl模块的例子,但仍然不能正确地理解它。我将遵循以下教程:。对于以下.pl和.pm文件,我调用

$perl Solver.pl

并有以下错误

Undefined subroutine &main::mergeSort called at Solver.pl line 13.
Solver.pl

下午三时

:默认值具有优先于您的内置定义。它导出默认情况下导出的所有符号,也就是说@EXPORT中的所有符号。您应该使用:

our @EXPORT      = qw( mergeSort );
our @EXPORT_OK   = @EXPORT;
our %EXPORT_TAGS = ( ALL => \@EXPORT_OK );

use MergeSort;   # Same as: use MergeSort qw( :DEFAULT );
但我认为明确列出一个人的进口是一个好主意,所以我会使用

our @EXPORT      = qw( );
our @EXPORT_OK   = qw( mergeSort );
our %EXPORT_TAGS = ( ALL => \@EXPORT_OK );

use MergeSort qw( mergeSort );
:默认值具有优先于您的内置定义。它导出默认情况下导出的所有符号,也就是说@EXPORT中的所有符号。您应该使用:

our @EXPORT      = qw( mergeSort );
our @EXPORT_OK   = @EXPORT;
our %EXPORT_TAGS = ( ALL => \@EXPORT_OK );

use MergeSort;   # Same as: use MergeSort qw( :DEFAULT );
但我认为明确列出一个人的进口是一个好主意,所以我会使用

our @EXPORT      = qw( );
our @EXPORT_OK   = qw( mergeSort );
our %EXPORT_TAGS = ( ALL => \@EXPORT_OK );

use MergeSort qw( mergeSort );

将默认值更改为“全部”非常有效,谢谢!将默认值更改为“全部”非常有效,谢谢!