use Date::Parse; # ... my @statements = map { $_->[1] } sort { $a->[0] <=> $b->[0] } map { [ str2time($_->{'statement_date'}), $_ ] } @statements;