foreach my log (@blog)

Perl ネタ

【Perl おぼえがき】ハッシュのハッシュを並び替えてみる。









ハッシュのハッシュ。。。

やっぱりハッシュなだけあって、そのまま print すると順序がバラバラ。

ハッシュのハッシュ

入れ子にしたハッシュのキーで並び替えてみたいです。



#!/usr/bin/perl

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 することも可能でした。














同じカテゴリー(Perl ネタ)の記事
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。
TI-DA
てぃーだブログ
プロフィール
chinji
chinji

PAGE TOP ▲