【发布时间】:2011-09-02 13:54:31
【问题描述】:
我有两个 Perl 包:pack_hash 和 pack_run
package pack_hash;
$VERSION = '1.00';
@ISA = qw( Exporter );
@EXPORT_OK = qw( %hashInfo );
$hashInfo{abc} = ['a', 'b', 'c'];
1;
package pack_run;
use stricts;
use warnings;
use Data::Dumper;
use pack_hash qw( %hashInfo );
somethingDoing();
sub somethingDoing {
my $var1 = \%pack_hash::hashInfo; # getting the hash reference
print Dumper($var1);
...
...
}
1;
谁能告诉我,是否可以使用任何变量替换散列包的名称(pack_hash),例如:
my $pakVar = "pack_hash";
my $var1 = \%$pakVar::hashInfo;
我知道这是 WRONG/NOT_CORRECT,但是当我使用限制时,我想要这种 符号 ref 转换。 我也想知道,是否可以用 eval 来做这件事。但我想要一个最终变量,这里是 $var1,它将引用特定的哈希 (hashInfo);
【问题讨论】:
-
想要这个并不是“错误的”。但是,我想知道你想用它做什么。你能解释一下吗?