当我在一个应该与Exporter 5.57(Perl 5.8.3附带的那个)一起使用的模块中使用Exporter
时,我是否应该更喜欢这四个版本中的一个?
# 1
use Exporter;
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(some_func);
# 2
use Exporter;
our *import = \&Exporter::import;
our @EXPORT_OK = qw(some_func);
# 3
use base 'Exporter';
our @EXPORT_OK = qw(some_func);
# 4
use parent 'Exporter';
our @EXPORT_OK = qw(some_func);
答案 0 :(得分:1)
Perl 5.8.3附带Exporter 5.57,它甚至支持以下内容:
use Exporter qw( import );
这比继承自Exporter要好,而且比手动导入import
要好。
答案 1 :(得分:1)
我个人倾向于使用:
use Exporter ();
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(...);
这适用于本世纪发布的每个版本的Perl和Exporter。
其他方式可能更紧凑,但上面的输入并不完全繁琐。而且每个模块只需要完成一次。其他方式是以与旧版Perl的兼容性为代价的,因此我坚持使用上述内容。