如何按perl中的选定值对数组进行排序

时间:2014-11-07 12:25:13

标签: arrays perl sorting

我以这种方式在数组中包含字符串

/hello/Stack/oveflow 14
/hello/Stack/oveflow 11
/hello/Stack/oveflow 12
/hello/Stack/oveflow 166
/hello/Stack/oveflow 1
/hello/Stack/oveflow 2
/hello/Stack/oveflow 5

我必须按最后一个数字排序

是否可以使用sort来做到这一点?

1 个答案:

答案 0 :(得分:6)

是的,sort正是您所需要的。只需提供代码块来比较两个元素:

my @sorted = sort { ($a =~ /[0-9]+/g)[-1]
                    <=>
                    ($b =~ /[0-9]+/g)[-1]
                  } @array;

<=>进行数值比较。匹配返回字符串中的所有数字,[-1]选择最后一个。