解析一些JSON数据后使用Data Dumper,我得到了这样的内容:
$VAR1 = {
param1 => 'foo',
param2 => $VAR1->{param1}
};
我是否正确,param2是链接到param1的值?
这叫什么?动态哈希?
谢谢,史蒂夫
无需混淆,param2的值只是结构中之前遇到的引用,因此默认情况下Data :: Dumper会将其显示为引用。您可以设置$Data::Dumper::Deepcopy = 1;
并让Data :: Dumper打印实际值,如果您需要它的话。例如:
my $foo = 'foo';
my $test = {
param1 => \$foo,
param2 => \$foo
};
print Dumper($test);
将打印出来
$VAR1 = {
'param2' => \'foo',
'param1' => $VAR1->{'param2'}
};
但是,如果您以类似以下内容开头:
use Data::Dumper;
$Data::Dumper::Deepcopy = 1;
您的输出将是:
$VAR1 = {
'param1' => \'foo',
'param2' => \'foo'
};
默认行为对于外观检查更有用。