{ local $_ = $b; $a->{b} = $_ if defined $_; } #### foreach ($b) { $a->{b} = $_ if defined $_; } #### $a->{b} = $_ foreach grep defined, $b; #### delete @$a{ grep { not defined $a->{$_} } keys %$a };