我有這樣的代碼如何以特定順序打印Perl哈希值?
#!/usr/bin/perl
use strict;
my @a = ("b","a","d","c");
my %h = ("a",1,"b",2,"c",3,"d",4);
#print '"' . join('","', @a), "\"\n";
print "\n";
foreach my $key (@a) {
print '"' . $h{$key} . '",';
}
print "\n";
輸出
"2","1","4","3",
但我想,它只是輸出
"2","1","4","3"
注意,最後 '' 是不存在的。
是否有可能例如按特定順序打印哈希,或者其他一些技巧來獲得我想要的輸出?
更新:
根據friedo的回答,我能夠把它弄清楚。
print '"' . join('","', @h{@a}), "\"\n";
弗裏多的回答沒有引用值附近的引號。
' 「\」 \ n 「'好寫爲'QQ {」 \ n}' – 2010-09-13 21:57:11
像'gbacon'的意志的情況下工作,其中'@了'具有零'基於map'解決方案元素。您的解決方案將打印:'「」\ n',這相當於'@ a'中的一個元素的值爲空字符串。 – daotoad 2010-09-13 22:36:18