in reply to Re^4: Where did $@ go?
in thread Where did $@ go?

So, the classic code as shown in the Camel Book simply can't work. If you don't use Try::Tiny (or compatible system? Do they interoperate properly?), you can only use $@ once.
Once? Try not at all. See the other messages in this thread. Pre-5.14, $@ is unreliable (and post 5.14, your problem won't magically solve itself - and I doubt Try::Tiny can determine why a block died without looking at $@). Never use $@ to determine whether an eval succeeded or not. Just use its return value. I'm not saying one shouldn't use Try::Tiny, but I do want to point out that safely determining whether an eval succeeded or not does not require a module:
eval { ... your code goes here ... 1; } or do { my $err = $@ || "Unknown error"; ... error handling ... };