=over =item delete EXPR 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 C<$ENV{}> modifies the environment. Deleting from a hash tied to a DBM file deletes the entry from the DBM file. (But deleting from a Cd 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 C.) 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}; =back