Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"

Re^4: Question regarding handling exceptions in subroutine

by karlgoethebier (Monsignor)
on May 12, 2013 at 12:24 UTC ( #1033194=note: print w/replies, xml ) Need Help??

in reply to Re^3: Question regarding handling exceptions in subroutine
in thread Question regarding handling exceptions in subroutine

Shouldn't it be something like this?


OK, eval...

my $result; eval { $result = qx($command); }; if ( $? >> 8 != 0 ) { if ($@) { die $@; } else { die qq(Something really weird happened!); } } # do stuff with $result...

Regards, Karl

«The Crux of the Biscuit is the Apostrophe»

Replies are listed 'Best First'.
Re^5: Question regarding handling exceptions in subroutine
by space_monk (Chaplain) on May 13, 2013 at 10:28 UTC

    Thanks, you're right about the other issues, I was simply in a hurry to outline a way forwardat least that's the excuse I'm using :-)

    Question: Why 'eval' this instead of just running this in backticks? I understand the command can fail, but in those cases it simply returns an error code.

    If you spot any bugs in my solutions, it's because I've deliberately left them in as an exercise for the reader! :-)
      "Why 'eval' this..."

      Good question. Because:

      1. I'm paranoid
      2. I didn't think
      3. I was in a hurry

      Perhaps all items match ;-)

      My posts aren't correct: it would only make (some) sense to eval if there is a die in the block that sets $@ (perhaps something wrong with $command, like a non-existing file etc). But this could be also trapped before with a file test operator...a.s.o

      I just wanted to say that you forgot to right shift, as you already noticed. That would have been enough. Sorry :-(


      To tell the truth: from time to time i need to take a look again at Perl documentation about this issues. I think it can be tricky - depending on the situation. And even if it isn't really tricky, i get a little confused about it from time to time...

      Best regards, Karl

      «The Crux of the Biscuit is the Apostrophe»

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1033194]
[marto]: good morning all
[hippo]: Great slogan :)
[Corion]: Hi marto ;)
[mxb]: Hi all.
[Discipulus]: Hi marto
Discipulus mmh .oO(perl data chess.. 8 scalar, 2 arrays, 2 hashes, 2 refernses, 1 typeglob and atied scalar)

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (7)
As of 2018-03-19 09:26 GMT
Find Nodes?
    Voting Booth?
    When I think of a mole I think of:

    Results (236 votes). Check out past polls.