in reply to Removing null values from within an array

The documentation for delete says:
Deleting an array element effectively returns that position of the array to its initial, uninitial­ized state. Subsequently testing for the same element with exists() will return false. Note that deleting array elements in the middle of an array will not shift the index of the ones after them down--use splice() for that. See the exists entry elsewhere in this document.

So putting 4 elements in an array and deleting the middle two:

#!/usr/bin/perl -w $arr[0]='a'; $arr[1]='b'; $arr[2]='c'; $arr[3]='d'; delete $arr[1]; delete $arr[2]; print join(" ", map { defined() ? $_ : '[undef]' } @arr),"\n";;
is exactly the same as just not putting the middle two in to begin with:
#!/usr/bin/perl -w $arr[0]='a'; $arr[3]='d'; print join(" ", map { defined() ? $_ : '[undef]' } @arr),"\n";
Both produce the same output:
a [undef] [undef] d