Delete a Hash Value
DESCRIPTION
Deletes the specified 
key(s) 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
tie()d 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 just assigning the empty list, or using undef().) 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};
 |