我有散列陣列,需要迭代并列印序列中的值 - id,name,mailid。
但是當我列印密鑰的內容時,它一直在洗牌。如何列印如下內容:
ID,NAME,EMAIL
vkk,Victor,[email protected]
smt,Smith,[email protected]
這是我的腳本:
my @data = (
{
'mail' => '[email protected]',
'name' => 'Victor',
'id' => 'vkk'
},
{
'name' => 'Smith',
'mail' => '[email protected]',
'id' => 'smt'
}
);
print "ID,NAME,EMAIL\n"; #header
for $content (@data){
for $fields (keys %$content){
print $content->{$fields}.",";
}
print "\n";
}
uj5u.com熱心網友回復:
的檔案是這樣keys()說的:
散列條目以明顯隨機的順序回傳。
因此,如果要以特定順序提取資料,則應指定該順序。
for $content (@data){
for $fields (qw(id name mail)) {
print $content->{$fields}.",";
}
print "\n";
}
或者使用哈希切片來簡化代碼:
for $content (@data) {
print join(',', @{$content}{qw(id name mail)}), "\n";
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/383281.html
