我在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
);
我尝试按如下方式打印:
use Data::Dumper;
print Dumper (%media);
我明白了:
$VAR1 = 'file';
$VAR2 = [
'mystery',
'action',
'drama'
];
$VAR3 = 'music';
$VAR4 = [
'rock',
'pop',
'musical'
];
$VAR5 = 'print';
$VAR6 = [
'biography',
'novel',
'periodical'
];
它像列表一样打印哈希。我所期待的是这样的东西,它表示它是一个哈希。
$VAR1 = {
'file' => [
'mystery',
'action',
'drama'
],
'music' => [
'rock',
'pop',
'musical'
],
'print' => [
'biography',
'novel',
'periodical'
]
};
但是如果我将%media
转换为匿名哈希引用,我只会得到这个
当我转储哈希表时,为什么不能得到类似哈希的打印?
答案 0 :(得分:5)
Dumper会将标量列表转储。如果要转储那些,则将对哈希和数组的引用传递给它。
print Dumper(\%media);