Linux 技术手札

Perl 阵列排序

Perl 要对阵列进行排序, 可以用内建函式 sort 来做, 例如:

以上第 7 行用了 sort 对 @words 进行排序, 输出结果会是:

abc
def
mmm
xyz

但这个 sort 函式是用字串排序的,如果阵列的值是数值,sort 也会根据字串的方式排序,即 123 会排在 23 前面,因为 “1” 是排在 “2” 前面,这样是做不到排序数值的。这时对数值进行排序可以透过 <=> 实现,<=> 是 Perl 的比较运算子,会比较左右两个数值,

以上程式码用会正确对阵列 @words 以数值方式排序,输出结果为:

3
5
8
23
123
Exit mobile version