On Mon, Dec 27, 2010 at 10:03 PM, Chas. Owens > { } by itself creates a
lambda (i.e. an anonymous function), so it may
> > be that you are returning an anonymous function that never gets
> > executed. Try using parentheses instead of braces.
>
> Or better yet, don't use anything. Since ++ has higher precedence
> than ??!!, it doesn't need to any parentheses:
>
> $r1 > $r2 ?? %matches{$p1}++ !! %matches{$p2}++ ;
>
Ah. That makes sense. I hadn't realized that squiggly brackets were lambdas.
Very cool. To prove that they are lambdas, I confirmed that the following
works:
$r1 > $r2 ?? {%matches{$p1}++}() !! {%matches{$p2}++}();
So, in this needlessly complex code, I basically create an anonymous
function and immediately execute it.
Cheers,
Daniel.
--
No trees were destroyed in the generation of this email, but a large number
of electrons were severely inconvenienced.