delete
delete EXPRThis function deletes an element (or a slice of elements) from
the specified hash or array. (See unlink if you want to delete a file.) Deleted
elements are normally returned in the order specified, although this
behavior is not guaranteed for tied variables such as DBM files. After
the delete operation, the exists
function returns false on any deleted key or index. (In contrast, after
the undef function, the exists function continues to return true,
because the undef function only
undefines the value of the element, but doesn’t delete the element
itself.)
Deleting from the %ENV hash
modifies the environment. Deleting from a hash tied to a (writable) DBM
file deletes the entry from that DBM file.
Deleting from an array causes the element at the specified
position to revert to a completely uninitialized state, but it doesn’t
close up the gap, since that would change the positions of all
subsequent entries. Use a splice for
that. However, if you delete the final element in an array, the array
size does shrink by one or more, depending on the position of the next
largest existing element, if any.
Calling delete on array values
is deprecated and likely to be removed in some future version of
Perl.
EXPR can be arbitrarily complicated if
the final operation is a hash or array lookup:
# set up array of array of hash $dungeon[$x][$y] = \%properties; # delete one property from hash delete $dungeon[$x][$y]{"OCCUPIED"}; # delete three properties all at once from hash delete @{ ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access