this seems a rather dangerous and naive optimization to me
The optimization is a red herring; it's not changing
the result in any way. If the left operand of the
&& operator is true in boolean context,
then it returns the value of its right operand,
whatever that may be. Expecting it to return the
left operand is wrong. (What you really were
expecting is a different parse, based on different
operator precedence. (See my other post downthread.))
;$;=sub{$/};@;=map{my($a,$b)=($_,$;);$;=sub{$a.$b->()}}
split//,".rekcah lreP rehtona tsuJ";$\=$;[-1]->();print