use 5.010; # say use strict; use warnings; use Date::Manip qw( ParseDateString ); my @dates = ( "Aug 8 12:12:13", "Jan 1 21:01:03", "Aug 8 12:12:14", "Aug 7 09:12:10", ); my %lookup; say $lookup{$_} for sort map { $lookup{ my $s = ParseDateString($_) } = $_; $s } @dates;