On Aug 9, 10:39 am, [EMAIL PROTECTED] wrote:
> ----- Original Message -----
> From: Paul Lalli <[EMAIL PROTECTED]>
> Date: Thursday, August 9, 2007 8:52 am
> Subject: Re: slices
> To: [EMAIL PROTECTED]
>
> > $ perl -wle'my @bar = qw/alpha beta gamma/; @bar[()] = (1, 2, 3);
>
>
> ^^^^^^^
>
> Can you explain this? The index is not intuitive to me.
It's an empty array slice. A "normal" array slice would be something
like:
@bar[2, 3, 6] = ('foo', 'bar', 'baz');
which assigns foo, bar, and baz to the third, fourth and seventh
elements of @bar (respectively). It's exactly the same as:
($bar[2], $bar[3], $bar[6]) = ('foo', 'bar', 'baz');
That is, @bar[2, 3, 6] represents a list containing the third, fourth,
and seventh elements of @bar.
Saying @bar[2] is a one-element array slice. It is a list containing
only a single element - the third element of @bar.
@bar[()] is a zero-element array slice. It is a list containing
nothing. There is no point in ever using such a thing - I merely
posted it to illustrate my disagreement with John's assertion that a
slice requires more than one index.
Paul Lalli
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/