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.