4.2.11 將一個陣列排序

sort 可以將一個陣列以內定的順序排列(按 ASCII),並傳回排列的結果,但原陣列不受影響,如下所示:

#! /usr/bin/perl

@total=(2, 4, 6, 1, 3, 5, "a", "b", "c");

@xyz= sort @total;

print @xyz;
# 此時 @xyz 應為 (1, 2, 3, 4, 5, 6, "a", "b", "c");

print "\n\n";

@abc=reverse @xyz;
print @abc;
# 此時 @abc 應為 ("c", "b", "a", 6, 5, 4, 3, 2, 1);


再看另一個例子:

#! /usr/bin/perl

@test=(1, 4, 5, 22, 9, 101);

@mmm=sort  @test;

print join ',', @mmm, "\n\n";

# 輸出結果:

1,101,22,4,5,9,

咦! 怎麼不是按數值大小排序?當然囉! 先前有提到,sort 預設是以 ASCII 順序來排序的! 如何做到我們想要的數值排序呢?請看一下節說明。