この形式のハッシュの場合:
my $itemHash = {
tag1 => {
name => "Item 1",
order => 1,
enabled => 1,
},
tag2 => {
name => "Item 2",
order => 2,
enabled => 0,
},
tag3 => {
name => "Item 3",
order => 3,
enabled => 1,
},
...
}
ハッシュを正しく反復する次のコードがあります。
keys %$itemHash; # Resets the iterator
while(my($tag, $item) = each %$itemHash) {
print "$tag is $item->{'name'}"
}
ただし、これらのアイテムが繰り返される順序はかなりランダムなようです。同じwhile
形式を使用して、各アイテムのハッシュの「order」キーで指定された順序でそれらを反復処理することは可能ですか?
(最初にキーを並べ替えてから、foreachループを実行できることを知っています。これを行うためのよりクリーンな方法があるかどうかを確認するだけです。)