算是备忘吧。
施瓦茨变换
二重排序
1、有这么些字符串:
cold_10hr cold_5hr drought_2hr heat_24hr salt_1hrcold_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;