【发布时间】:2011-07-30 01:32:53
【问题描述】:
我想为主要 perl 程序和其他包的所有常见声明设置一个专用包,而不在每个标题中重复这些声明。我肯定弄错了,但无法弄清楚背后的原因:
让我们假设:
- 我已经在 my_common_declarations.pm 包中设置了我的通用数据。
- 我想在另一个包中使用这些数据,例如 my_perl_utils.pm。
#!/usr/bin/perl -w
package my_perl_utils;
use parent qw(Exporter);
our @EXPORT_OK = qw(f1 f2);
use my_common_declarations qw(debugme);
my %setup = &debugme;
my $DEBUGME = $setup{setup}{debugme};
# This generates this error : "Use of uninitialized value"
use constant true => $setup{setup}{'true'};
print "=" x25, "\nDEBUG true :\nimport = " . $setup{setup}{'true'} . "\nconstant = " , true , "\n", "=" x25, "\n";
sub f1{
# some rationals using the true or false constants
}
sub f2{
}
1;
我无法成功声明没有错误的“真实”常量。
我应该在主程序中只导入一次通用声明包并在其中相应地声明常量,还是在我需要此常量的每个包中重新声明它?
谢谢
【问题讨论】:
标签: perl constants package declaration shared