KAIHATSUGIKEN GROUP
************************************************************************************
23 並べ替え
****************
配列の要素を順番に並べ替えた配列を返すsortという関数があります。
何も指定しないと、配列の要素を文字列と考えてアルファベット順に並べ替えます。
@party=("Sephiroth","Barett",Cloud");
@sorted=sort(@party);
を実行すると@sortedには
"Barett","Cloud","Sephiroth"の順に並んだ配列が代入されます。
そういうときは
@sorted=sort(@party);
とします。
結局、$aを$bより前にすると言うことです。
逆順にしたいときは
@sorted=reverse(sort(@party));
とします。
問題は数字の時です。
@nums=(2,30,100);
@sorted=sort(@nums);
これの答えは
100,2,30 になってしまいます。
数字の時は文字の先頭の文字だけをソートしてしまうからです。
こんな時は
@sorted=sort{$a<=>$b}@nums;
とします。
数として比較するときは <=>を使います。
**********************************************