$_->{TimePiece} = Time::Piece->strptime($_->{Date}, '%m-%d-%Y') for @$data; my @filtered = sort { $a->{TimePiece} <=> $b->{TimePiece} } @$data;