算是备忘吧。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;