为什么Data :: Dumper显示链接到其他值的值?

问题描述 投票:0回答:1

解析一些JSON数据后使用Data Dumper,我得到了这样的内容:

$VAR1 = {
   param1 => 'foo',
   param2 => $VAR1->{param1}
};

我是否正确,param2是链接到param1的值?

这叫什么?动态哈希?

谢谢,史蒂夫

perl hash
1个回答
1
投票

无需混淆,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'
        };

默认行为对于外观检查更有用。

© www.soinside.com 2019 - 2024. All rights reserved.