On Tue, Jul 17, 2001 at 11:37:28AM -0400, Uri Guttman wrote:
> >>>>> "JB" == Jeff Boes <[EMAIL PROTECTED]> writes:
>
> JB> while (my ($k,$v)= splice @_, -2) { $o->$k($v)}
>
> JB> is a bug that should read
>
> JB> while (@_ and my ($k,$v)= splice @_, -2) { $o->$k($v)}
>
> JB> at least, under perl 5.6.1.
>
> why do you say that? returning an empty list is a normal way of exiting
> a loop. each in a list context does it and the boolean code expects to
> look for it. there are times when you can't check the original list (it
> could be an iterator like each) so the empty list is the out of band EOF
> value.
Heh, I was going to reply with the same answer, until I realized the problem
was not the assignment, but the -2. Try
perl -we '@a = splice @b, -2'
Graham.