my @sorted = sort {str2time($a) <=> str2time($b)} @dates; #### my %cache; my @sorted = sort {($cache{$a} ||= str2time($a)) <=> ($cache{$b} ||= str2time($b)) } @dates;