$ORG[0] = {
"person" => "tanaka",
"adana" => "tanachan",
"adanaid" => 5,
};
$ORG[1] = {
"person" => "takada",
"adana" => "takachan",
"adanaid" => 2,
};
$ORG[2] = {
"person" => "imai",
"adana" => "imachan",
"adanaid" => 3,
};
@tmp = sort { (${ORG[$a]->{adanaid}} <=> ${ORG[$b]->{adanaid}}) } 0 .. $#ORG;
foreach (@tmp) {
print 'person='. $ORG[$_]->{person}. "\n";
print 'adana='. $ORG[$_]->{adana}. "\n";
print 'adanaid='. $ORG[$_]->{adanaid}. "\n";
}
はわかるのですが(以前こちらで教えていただいたのですが)
そうではなく、@ORGを、${ORG[?]->{adanaid}}でソートした結果を、
再び@ORGとして得るにはどうすればいいのでしょうか?
(ただし、一個一個person、adana、adanaid などとせずに。。。実際は項目が多いもので)
foreach my $key (keys %{$ORG[0]}){
\$ORG[0]->{$key}
}
↑この辺をどうにかするよな気がするのですが・・・