"Mark J. Reed" <[EMAIL PROTECTED]> writes:

> On Mon, Apr 08, 2002 at 07:56:11PM +0100, Piers Cawley wrote:
>> > Also, just wondering:
>> >
>> >    $_[_][EMAIL PROTECTED] _=_0_-_
>> >
>> > does that work the way I expect it to?
>> 
>> Dunno, what do you expect it to do?. To my way of thinking there's
>> going to be a syntax error at the third '_'. But I'm not entirely
>> certain of that.
> To me, the third '_' seems like it'd be an unambiguous case of the concatenation
> operator.  I still can't parse it, however; it looks like an attempt to
> modify a non-lvalue:
>
> $_.[_()] _ @_._() _= _0_() - _()
>
> That is:
>       1. Invoke the subroutine _  (name resolved in current scope)
>       2. Dereference the variable $_, yielding an array reference.
>       3. Retrieve the element of the referenced array whose index is
>            the result of step 1.
>       4. Invoke the method _ on the array @_. 
>       5. Concatenate the results of steps 3 and 4
>       6. Invoke the subroutine _0_ 
>       7. Invoke the _ again (or retrieve the cached result from step 1)
>       8. Subtract #7 from #6
>       9. Append the result of step 8 to contents of the lvalue
>            which is the result of step 5.
>
> This is where my interpretation fails because the result of step 5
> is not an lvalue.

How do you know that? '_' could be a method on its LHS that returns
and object that responds to _=. But generally, I think it's weird.

-- 
Piers

   "It is a truth universally acknowledged that a language in
    possession of a rich syntax must be in need of a rewrite."
         -- Jane Austen?

Reply via email to