2014-12-27 117 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