Am I to assume that elements 0-69 and 71-120 are undefined?
Yes. If they were undefined, they will remain undefined.
$ perl -le' my @a; print 0+@a; print defined($a[0]) || 0; $a[70] = "a"; print 0+@a; print defined($a[0]) || 0; ' 0 0 elements in the array 0 and the first one isn't defined. 71 71 elements in the array 0 and the first one still isn't defined.
My problem is that not defined ($array[$number] returns false
Then $array[$number] is defined. It was given a value somewhere else, possibly through autovivification.
$ perl -le' my @a; print defined($a[0]) || 0; $a[0][0]; print defined($a[0]) || 0; ' 0 1
[@{$x->[3]}>0 gives] Can't use an undefined value as an ARRAY reference
Then $array[$number][3] is not defined.
Update: Added code blocks.
In reply to Re: Erroneous defined detection of array elements
by ikegami
in thread Erroneous defined detection of array elements
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |