On Wed, 2003-01-29 at 05:29, Leopold Toetsch wrote: > John Williams wrote: > > > I think you are still overlooking the autovivification behavior. > > i.e. What is the difference between these: > > > > 1) $a{1234567} = 1; > > > > 2) $a[1234567] = 1; > > > > Answer: #1 creates 1 element. #2 creates 1,234,567 elements!
> Not currently: 2) does > - generate a sparse hole between old size and up to ~index > - generate one data chunk near index > - store the PerlInt at index I covered this under the term "storage". The storage is different for arrays and hashes. This we know. But, why do I need to waste a set of balanced tokens to indicate that difference? Historical compatibility with Perl5? Perhaps. That's not a bad reason actually, given how much this could wig people out (just look at the response on this list :) Also, you don't always pre-declare in Perl, and the following would be ambiguous: $x[7] = 8; That could auto-vivify an array ref or a hash ref, and choosing one or the other is kind of scary. I think you could work around that, but it would require a real dedication to the IDEA that Perl has a generic container type. -- Aaron Sherman <[EMAIL PROTECTED]> This message (c) 2003 by Aaron Sherman, and granted to the Public Domain in 2023. Fight the DMCA and copyright extension!