sort {$a <=> $b} @xxx;
というソート方はね、例えば配列の中が・・・
@xxx = ('5','7','3','1','9');
となっていた場合、最初の数値とその直後の数値を比べて並べ替ええるわけ、
つまり最初からいってみると、
$a = 5;
$b = 7;
となり、プログラムの順番にしたがって(早い話 $a < $b の順ね)の
通りに並び替えてくれるの。つまり、
@end_sort_xxx = ('1','3','5','7','9');
となる。反対に{$a <=> $b}と順を逆にすると、
逆順ソートが完成するわけなのさ。
例えば、適当に入っている配列数字を逆順にソートかけるとなると、
この方法知らないとプログラムは・・・
@xxx = sort @xxx;
@end_sort_xxx = reverse @xxx;
と二行になるけど、この方法だと・・・
@end_sort_xxx = sort {$b <=> $a} @xxx;
の一行ですんじゃうんだな♪
|