考虑以下散列:
my $hoh = {
'tag1' => {
'name' => 'Item 1',
'order' => '1',
'enabled' => '1',
},
'tag2' => {
'name' => 'Item 2',
'order' => '2',
'enabled' => '0',
},
'tag3' => {
'name' => 'Item 3',
'order' => '3',
'enabled' => '1',
},
}
我正在使用以下方法获取哈希值:
for my $x (keys %{ $hoh{'tag1'} }) {
my $y = $hoh{'tag1'}{$x};
print "key is $x --- value is $y\n";
}
但是输出不是按照 key 存储的顺序!是否可以确保键值对按存储顺序打印?
最佳答案
key 的存储没有“顺序”。这是一个哈希。如果您真的想要一个特定的顺序(用于表格标题等),请保留一个单独的列表。
my @table_headings = qw(name order enabled);
for my $k (@table_headings) {
my $v = $hoh->{tag1}->{$k};
print "$k => $v\n";
}
关于perl - 是否可以按照 key 的存储顺序遍历 perl 中的散列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16850803/