foreach my $week (sort keys %IssuesByWeek) { my $issues=$IssuesByWeek{$week}; print "$week:\n\t", join ("\n\t", map{ "$_ => $issues->{$_}" } ( sort { $issues->{$b} <=> $issues->{$a} } keys %$issues )[0..4] ),"\n"; }