http://qs1969.pair.com?node_id=310

delete

See the current Perl documentation for delete.

Here is our local, out-dated (pre-5.6) version:


delete - deletes a value from a hash



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 $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};