$a = { d=>1, e=>2, f=>3, g=>undef, h=>0, i=>4 }; delete @$a{ grep { not $a->{$_} } keys %$a };