use Date::Simple qw(:all); my @dates = ('10/02/2004', '02/01/2004', '01/02/2004', '01/06/2004', '01/02/2005', '01/12/2004', '08/18/2010', '01/05/2005', '01/05/2004','01/05/2004'); @dates = map {$_->[0]} sort { &date($a->[1]) cmp &date($b->[1]) } map {[$_, join '-',(split '/')[2,0,1]]} @dates; print $_,$/ for (@dates);