on an array it only undefines the value of an element
Actually, it does a bit more than "only" undefining the value. I'm not sure how useful this behavior is, but it's not quite the same as simply setting the value to undef. Here's a code snippet that demonstrates:
$ perl -MData::Dumper -le ' @array = (1 .. 3); delete $array[1]; print Dumper \@array; delete $array[2]; print Dumper \@array;'
When run, it outputs the following:
$VAR1 = [ 1, undef, 3 ]; $VAR1 = [ 1 ];
We see that the first delete call does indeed appear to simply set the value to undef, but when we delete again, it demonstrates the difference.
Update: betterworld beat me to it, by a pretty large margin. That'll teach me not to reload before replying. :-)
In reply to Re^2: Pop/shift/delete on array
by revdiablo
in thread Pop/shift/delete on array
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |