Translate

2009年8月23日日曜日

hashのソート。

めもめも。
ハッシュのkeyでソートする場合とvalueでソートする場合。

・keyでソートする場合
#/!us/bin/perl                                                                                                  
use strict;
use warnings;
use utf8;

#適当な値を用意しておく
my %hash = (
bri => 48, sdu => 57, mff => 96,
egt => 61, nem => 3, vik => 65,
mrq => 22, mph => 54, wbj => 44,
mgl => 27,
);

print "key sort\n";
for my $key (sort keys %hash){
print $key, ":", $hash{$key}, "\n";
}

実行結果
key sort
bri:48
egt:61
mff:96
mgl:27
mph:54
mrq:22
nem:3
sdu:57
vik:65
wbj:44

・valueでソートする場合
#/!us/bin/perl                                                                                                  
use strict;
use warnings;
use utf8;

#適当な値を用意しておく
my %hash = (
bri => 48, sdu => 57, mff => 96,
egt => 61, nem => 3, vik => 65,
mrq => 22, mph => 54, wbj => 44,
mgl => 27,
);
print "value sort\n";
for my $key (sort{$hash{$a} <=> $hash{$b}} keys %hash){
print $key, ":", $hash{$key}, "\n";
}

実行結果
value sort
nem:3
mrq:22
mgl:27
wbj:44
bri:48
mph:54
sdu:57
egt:61
vik:65
mff:96

0 件のコメント: