key
and their associated values from a
hash. For each key, returns the deleted value associated with that key, or
the undefined value if there was no such key. Deleting from $ENV{}
modifies the environment. Deleting from a hash tied to a
DBM file deletes the entry from the
DBM file. (But deleting from a tied
hash doesn't necessarily return anything.)
The following deletes all the values of a hash:
foreach $key (keys %HASH) { delete $HASH{$key}; }
And so does this:
delete @HASH{keys %HASH}
(But both of these are slower than the undef
command.) Note that the
EXPR can be arbitrarily complicated as long as the final operation is a hash element lookup or hash slice:
delete $ref->[$x][$y]{$key}; delete @{$ref->[$x][$y]}{$key1, $key2, @morekeys};