[[!template id=gitbranch name=smcv/ready/careful-eval author="[[smcv]]"]]
[[!tag patch]]
As noted in the Try::Tiny man page, eval/$@ can be quite awkward in
corner cases, because $@ has the same properties and problems as C's
errno. While writing a regression test for definetemplate
in which it couldn't find an appropriate template, I received
Error: failed to process template
deftmpl
instead of the intended
Error: failed to process template
deftmpl template deftmpl not
found
which turned out to be because the "catch"-analogous block called
gettext before it used $@, and gettext can call define_gettext,
which uses eval.
Fixed in my branch smcv/ready/careful-eval. --[[smcv]]