foreach my $key (%hash) { my $session = $hash{$key}; # autovivification here if (should_delete($session)) { # receives 'undef' delete $hash{$key}; } }