2014-12-27 40 views
1

我发现了很多不同的答案对这个问题,并没有一个似乎工作的Perl:如何循环遍历一个哈希

这里是我有(?!):

my %FORM = ["a"=>"0AD", "b"=>"johnny manziel", "c"=>"lincoln"]; 
#my @k = keys (%FORM); 
#for my $iter (@k) { print "$iter\n"; } 
#for my $key (keys %FORM) { 
# print "\t"; 
# print $FORM{$key}; 
# print "\n"; 
#} 

while (($key, $value) = each %FORM) 
{ 
    print "key: $key, value: $FORM{$key}\n"; 
} 

典型输出:

./testprinthash.pl 
key: ARRAY(0x13a2998), value: 

我总是得到一个数组,而不是一个键值

+1

'使用警告;'总是有益的。 – 2014-12-28 16:07:39

回答

5

你想用括号的210分配给散列时,不是方括号[ ]

my %FORM = ("a"=>"0AD", "b"=>"johnny manziel", "c"=>"lincoln"); 

[ ]创建一个数组参考,这是不是你想要的。

检查

+0

他原来的赋值等同于'my%FORM =(“ARRAY(0x13a2998)”=> undef);'(尽管括号中的数字会有所不同)。 – cjm 2014-12-27 17:32:51