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.