排序-Perl

算是备忘吧。code

施瓦茨变换

二重排序

一、有这么些字符串:排序

cold_10hr  cold_5hr      drought_2hr  heat_24hr  salt_1hr
cold_1hr   drought_10hr  drought_5hr  heat_2hr   salt_24hr
...

但愿先按照字母(即 cold 等)排序,而后按照数字(好比 10, 5, 2 ...)排序。 解决方案:字符串

# 假设它们存储在 @names 中
@names = map { $_->[0] }
    sort { $a->[1] cmp $b->[1] or $a->[2] <=> $b->[2] }
    map { [ $_, /^(\D+)(\d+)/ ] }
    @names;
相关文章
相关标签/搜索