in reply to Re^3: why does Perl eval have a strange terminator?
in thread why does Perl eval have a strange terminator?

Try::Tiny requires a ;, and if you investigate why it is because it is implemented using prototypes.
sub try (&;@) { ... sub catch (&;@) { ... sub finally (&;@) { ...
I am not suggesting "eval BLOCK" is implemented using prototypes, but one could implement their own that would literally become a drop-in replacement (since the ; is likey already there. FWIW, (&;@) means the BLOCK param is coerced into a coderef, then optionally (after that ;), which allows something like the:
try { } catch { } finally { };
So now the POD seems to make a little more sense.