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

Reply via email to