Jim*_*Jim 0 perl module constants perl-module
我有一个模块A::B::C::D::E.在模块中我定义了一些常量:
use constant {
PERSON => 'person',
EMPLOYEE => 'employees',
};
Run Code Online (Sandbox Code Playgroud)
我做:
our @EXPORT_OK qw / PERSON EMPLOYEE /;
Run Code Online (Sandbox Code Playgroud)
我use在另一个脚本中的模块和常量工作,如果我这样做:
A::B::C::D::E::PERSON
Run Code Online (Sandbox Code Playgroud)
我怎样才能使用PERSON而不必包含完整的模块名称?我PERSON在我的脚本中导入但它不起作用.
@EXPORT_OK只标记"可用于导出"(假设您已正确将模块连接到导出器).它默认不导出它们.
在你的脚本中,做
use A::B::C::D::E qw / PERSON EMPLOYEE /;
Run Code Online (Sandbox Code Playgroud)
从模块中导入这些常量.
更新: 听起来您还没有正确地将模块连接到Exporter.为此,您可以包含以下A/B/C/D/E.pm任一项:
use Exporter 5.57 'import'; # v5.57 introduced an exportable import method
Run Code Online (Sandbox Code Playgroud)
要么
use Exporter ();
our @ISA = qw(Exporter); # also include any other base classes you have
Run Code Online (Sandbox Code Playgroud)
我更喜欢第一种方法,它不会使您的包成为Exporter的子类.