为什么Data :: Dumper :: Dumper打印$VAR1->{'AA'}[2]而不是{ 1 => 6 }?
#!/usr/bin/env perl
use warnings;
use strict;
use 5.10.0;
my @a = ( 'a', 'b', { 1 => 6 } );
my %h = (
'AA' => [ @a ],
'BB' => [ @a ],
);
say $h{BB}->[2]{1};
use Data::Dumper;
say Dumper \%h;
Run Code Online (Sandbox Code Playgroud)
输出:
6
$VAR1 = {
'AA' => [
'a',
'b',
{
'1' => 6
}
],
'BB' => [
'a',
'b',
$VAR1->{'AA'}[2]
]
};
Run Code Online (Sandbox Code Playgroud)
在您的示例中$VAR1->{'AA'}[2],$VAR1->{'BB'}[2]是对相同哈希的引用.
Data::Dumper不想多次打印变量.此行为更忠实地表示数据结构,并且它避免了可能遇到的任何无限循环.例如:
my $loop;
$loop = { 1 => \$loop };
print Dumper $loop;
Run Code Online (Sandbox Code Playgroud)
输出是
$VAR1 = {
'1' => \$VAR1
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
225 次 |
| 最近记录: |