Yes, Perl has to initialize all array elements.
Internally, it will store pointers (to SV's), and if Perl
wouldn't initialize the array elements, it ends up with
random memory addresses, and it has no way of finding out
whether the element was initialized or not.