in reply to Re^5: Wierd bugs I would have never expected
in thread Wierd bugs I would have never expected

Apparently, as of 5.10, an eval block can have a return statement as well.

As ELISHEVA notes, this was possible before 5.10, too. From the 5.8.8 eval doc:

"In both forms, the value returned is the value of the last expression evaluated inside the mini-program; a return statement may be also used, just as with subroutines. The expression providing the return value is evaluated in void, scalar, or list context, depending on the context of the eval itself."
  • Comment on Re^6: Wierd bugs I would have never expected