Deleting an array element effectively returns that position of the array to its initial, uninitialized 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:
is exactly the same as just not putting the middle two in to begin with:#!/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";;
Both produce the same output:#!/usr/bin/perl -w $arr[0]='a'; $arr[3]='d'; print join(" ", map { defined() ? $_ : '[undef]' } @arr),"\n";
a [undef] [undef] d
In reply to Re: Removing null values from within an array
by sgifford
in thread Removing null values from within an array
by coldfingertips
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |