排序-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;
相關文章
相關標籤/搜索