in reply to Re^2: pruning of empty arrayrefs in nested array
in thread pruning of empty arrayrefs in nested array
I certainly do not want to be nitpicking with you, but it seems to me that deleting an array element does not exactly sets it to undef,
@a = 1..3;; pp \@a;; [1, 2, 3] delete $a[1];; pp \@a;; [1, undef, 3]
Close enough for me :)
but rather to "empty slot".... I have no idea of what the difference is.
A Perl array consists of a C array of pointers to scalars.
delete sets the value of the C pointer to 0; and the debugger reports that as "Empty slot"; but in all other circumstances is detected and reported as undef.
If you manually set the value of an array element to undef, then the C array pointer is set to point to the undef, which is a static pointer value that is defined to be undefined :)
It does not make a practical difference for the programmer
Agreed!
|
|---|