The delete operator doesn't really belong in the list. It removes pairs from a hash, but on an array it only undefines the value of an element.This is not quite true. If you delete the last element of an array, the array will actually shrink:
You can even have it funnier:my @array = qw/tiger dog cat/; delete $array[2]; print scalar @array; # Output is 2
However, this seemingly equivalent code does behave weird:my @array = qw/tiger dog cat/; delete $array[1]; print scalar @array; # Output is 3 delete $array[2]; print scalar @array; # Output is 1
my @array = qw/tiger dog cat/; delete $array[1]; print scalar @array; # Output is 3 splice @array, 2; print scalar @array; # Output is 2
In reply to Re^2: Pop/shift/delete on array
by betterworld
in thread Pop/shift/delete on array
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |