Dan Sugalski wrote:
> At 11:33 AM 10/1/00 -0700, Peter Scott wrote:
> >But, setting aside my visceral reaction to changing array bases, you have
> >precisely the same problem here that has scuppered my intent to file an
> >RFC for hashes with fixed keys; how do you apply the attribute to
> >anonymous, let alone autovivified, arrays?  If I say
> >
> >         my @a :base(1);
> >
> >then what of $a[1][1]?  How to specify that the second level array also
> >has a base of 1?  Without it looking really ugly?
>
> Well, it'd be reasonable for autovivified arrays and hashes to inherit the
> properties of their parent, so if you had:
>
>    my int @foo;
>
> and accessed $foo[1][2], that new autovivified array would be of type int.
>
That's exactly what we've proposed for compact multidimensional arrays, for
instance (from RFC 203):

<quote>
A list (of lists...) that contains elements of the same type can be
converted to an array by specifying its type:

  my @some_LOL = ([1,2],
                  [3,4]);
  my int @array = @some_LOL;
</quote>

I haven't got around to RFCing the more generic version (that all attributes
are inherited inside nested data types), but that would certainly be a nice
approach.


Reply via email to