Perl ネタ
【Perl おぼえがき】ハッシュのハッシュを並び替えてみる。
2015/07/08
2015/07/09
2015/07/10
2015/07/14
2015/07/15
ハッシュのハッシュ。。。
やっぱりハッシュなだけあって、そのまま print すると順序がバラバラ。

入れ子にしたハッシュのキーで並び替えてみたいです。
use strict;
use warnings;
my $item = { hokkaido => {hokkaido => '1'},
tohoku => { aomori => '2',
iwate => '3',
miyagi => '4',
akita => '5',
yamagata => '6',
fukusima => '7' },
kanto => { ibaraki => '8',
totigi => '9',
gunma => '10',
saitama => '11',
tiba => '12',
tokyo => '13',
kanagawa => '14'},
};
for my $area (keys %$item) {
print "$area\n";
for (sort { $item->{$area}->{$a} <=> $item->{$area}->{$b}}keys %{$item->{$area}}) {
print "$item->{$area}->{$_}\t$_\n";
}
}
---
出力結果
2 aomori
3 iwate
4 miyagi
5 akita
6 yamagata
7 fukusima
kanto
8 ibaraki
9 totigi
10 gunma
11 saitama
12 tiba
13 tokyo
14 kanagawa
hokkaido
1 hokkaido
for 文を重ねたところで値を sort しています。
1 つ目の for 文のところで sort することも可能でした。
2015/07/08
2015/07/09
2015/07/10
2015/07/14
2015/07/15