my @personlist=("1"..."1000") my ($person,%high_temp_days); foreach $person (@personlist) { %high_temp_days{$person}=grep {$_>300} values %BodyTemp{$person}; #the above two lines are one line }