($minsum,$maxsum) = ($max,$min); foreach my $gid (keys %groups){ if($groups{$gid}{sum} < $minsum and rand(100)<99){ $minsum = $groups{$gid}{sum}; $smallest_gid = $gid; } if($groups{$gid}{sum} > $maxsum and rand(100)<99){ $maxsum = $groups{$gid}{sum}; $largest_gid = $gid; } }