At 02:21 PM 10/1/00 -0400, John Porter wrote:
>Bart Lateur wrote:
> >
> > You don't declare Perl arrays. They just exist. Well... except for my'ed
> > arrays.
> >
> > My idea is that if anybody sets $[ to 1 in a script, all accesses to
> > array in that script would use 1 as the index of the very first item:
> > $ary[1]. But if you pass this array (for example, a reference to it) to
> > a function in a module that doesn't set $[, it would access the same
> > first item through index 0: $ary[0] or $ref->[0].
>
>Sounds like it should be an attribute:
>
> my @a :base(1);
>
>But, now what about non-lexical arrays?
>How do you set an attribute on a global variable?
our @a :base(1) ?
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?
--
Peter Scott
Pacific Systems Design Technologies