I think these statements are incorrect regarding Perl positional (if that's the correct term) arrays. (Perl associative arrays are sparse.)
Just wanted to confirm that you're correct that Perl's arrays are not sparse. I haven't yet found a reference in the official docs that says so explicitly, but I'm sure it's somewhere.
use Devel::Size 'total_size';
my @foo;
print total_size(\@foo), "\n"; # prints 64
$foo[100_000_000] = 'x';
print total_size(\@foo), "\n"; # prints 800000114
$foo[200_000_000] = 'x';
print total_size(\@foo), "\n"; # prints 1760000156