http://www.perlmonks.org?node_id=474954


in reply to Re: Pop/shift/delete on array
in thread Pop/shift/delete on array

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. :-)