in reply to Erroneous defined detection of array elements
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.
|
|---|