foreach $keys (%msgids) { if ($key =~ /$line/) { delete $msgids $key; } } #### foreach $key (keys %msgids) { if ($key =~ /$line/) { delete $msgids{$key} } } #### while (($key, $value) = each(%msgids)) { if ($key =~ /$line/) { delete $msgids{$key} } }