my %cases; push(@{$cases{$_->{examiner}}}, $_) foreach(@$all_cases); $case_list = [ map { { examiner => $_, casedata => $cases{$_} } } keys %cases ];