The block form of eval (like your example) can be
parsed at compile time along with everything else.
I think where the optimizer is going to have to be
careful is if you use the string form of eval. In
that case, some stuff just won't get optimized that
otherwise could be. So the performance-is-vital
people will be telling us not to use string eval,
and I can safely ignore them if I don't care
about optimization :-)
;$;=sub{$/};@;=map{my($a,$b)=($_,$;);$;=sub{$a.$b->()}}
split//,".rekcah lreP rehtona tsuJ";$\=$;[-1]->();print