【发布时间】:2009-04-09 23:40:59
【问题描述】:
我试图通过创建一个导出整本书中使用的几个标量的Constants 模块来使关注Perl Best Practices 变得更容易。特别是$EMPTY_STRING,我几乎可以在我编写的每个 Perl 脚本中使用它。我想要的是自动导出这些标量,这样我就可以使用它们而无需在每个脚本中明确定义它们。
#!perl
package Example::Constants;
use Exporter qw( import );
use Readonly;
Readonly my $EMPTY_STRING => q{};
our @EXPORT = qw( $EMPTY_STRING );
示例用法:
#!perl
use Example::Constants;
print $EMPTY_STRING . 'foo' . $EMPTY_STRING;
使用上面的代码会产生错误:
Global symbol "$EMPTY_STRING" requires explicit package name
如果我将Readonly 声明更改为:
Readonly our $EMPTY_STRING => q{}; # 'our' instead of 'my'
错误变成:
Attempt to reassign a readonly scalar
mod_perl 无法做到这一点吗?
【问题讨论】:
标签: perl readonly mod-perl exporter