Let me try to explain why this response might have attracted so many downvotes, and more importantly, why it's not good advice.
Actually, the documentation does a better job than I could do:
delete() may also be used on arrays and array slices, but its behavior is less straightforward. Although exists() will return false for deleted entries, deleting array elements never changes indices of existing values; use shift() or splice() for that. However, if all deleted elements fall at the end of an array, the array's size shrinks to the position of the highest element that still tests true for exists(), or to 0 if none do.
WARNING: Calling delete on array values is deprecated and likely to be removed in a future version of Perl. (Emphasis added.)
| [reply] |