Cra*_*lus 2 perl hash perl-data-structures
我在Perl中有以下代码段:
my $a1 = [ qw(rock pop musical) ];
my $b1 = [ qw( mystery action drama )];
my $c1 = [ qw( biography novel periodical)];
my %media = (
music => $a1,
file => $b1,
print => $c1
);
Run Code Online (Sandbox Code Playgroud)
我尝试按如下方式打印:
use Data::Dumper;
print Dumper (%media);
Run Code Online (Sandbox Code Playgroud)
我懂了:
$VAR1 = 'file';
$VAR2 = [
'mystery',
'action',
'drama'
];
$VAR3 = 'music';
$VAR4 = [
'rock',
'pop',
'musical'
];
$VAR5 = 'print';
$VAR6 = [
'biography',
'novel',
'periodical'
];
Run Code Online (Sandbox Code Playgroud)
它像列表一样打印哈希.我所期待的是这样的东西,它表示它是一个哈希.
$VAR1 = {
'file' => [
'mystery',
'action',
'drama'
],
'music' => [
'rock',
'pop',
'musical'
],
'print' => [
'biography',
'novel',
'periodical'
]
};
Run Code Online (Sandbox Code Playgroud)
但是,如果我将其转换%media
为匿名哈希引用,我只会得到这个.
当我转储哈希表时,为什么不能获得类似哈希的打印?
Dumper会收集一些标量转储.如果要转储那些,则将对哈希和数组的引用传递给它.
print Dumper(\%media);
Run Code Online (Sandbox Code Playgroud)