2

我在 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但是只有当我将它转换为匿名哈希引用时,我才会得到这个。
为什么我在转储哈希表时没有得到类似哈希的打印?

4

1 回答 1

5

Dumper 需要一个标量列表来转储。如果要转储这些,请传递对哈希和数组的引用。

print Dumper(\%media); 
于 2013-10-12T21:05:01.040 回答