KAIHATSUGIKEN GROUP

PERL PROGRAMMING LANGUAGE



************************************************************************************
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;
とします。

数として比較するときは <=>を使います。

**********************************************