Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re^3: eval: Why use the 'Zombie error' idiom?

by hippo (Bishop)
on Oct 18, 2019 at 10:43 UTC ( [id://11107651]=note: print w/replies, xml ) Need Help??


in reply to Re^2: eval: Why use the 'Zombie error' idiom?
in thread eval: Why use the 'Zombie error' idiom?

Interesting choice. I use Try::Tiny precisely to avoid having to work around the edge cases inherent in eval. YMMV, of course.

  • Comment on Re^3: eval: Why use the 'Zombie error' idiom?

Replies are listed 'Best First'.
Re^4: eval: Why use the 'Zombie error' idiom?
by kikuchiyo (Hermit) on Oct 18, 2019 at 11:34 UTC
    The reason I avoid Try::Tiny is that its catch block is actually a function in disguise, not just a block like with the original eval idiom. So a return from a Try::Tiny catch block returns just from that block, and not from the enclosing function, which is useless and misleading.

      Indeed so, and the Try::Tiny POD explains this in some detail. If you want to return directly from a catch block then Syntax::Keyword::Try might be for you? There's also TryCatch but that uses Moose so isn't exactly the lightest tool in the box.

      Interestingly, the block names used with the loop control operators are dynamically scoped, so last, next, and redo all work in that context, but I do not think that there is any good way to actually return a value from the sub in such a block.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11107651]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others perusing the Monastery: (6)
As of 2024-04-24 11:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found