Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re: How to get the exit status and the output of the command launched in perl

by zwon (Monsignor)
on May 26, 2009 at 10:13 UTC ( #766182=note: print w/ replies, xml ) Need Help??


in reply to How to get the exit status and the output of the command launched in perl

backquotes operator can only get the output of the command
backticks also can get exit status the same way the system does. You can read it from $?


Comment on Re: How to get the exit status and the output of the command launched in perl
Download Code
Re^2: How to get the exit status and the output of the command launched in perl
by sunshine_august (Scribe) on May 26, 2009 at 10:31 UTC
    yes, but the $? in perl is different from the $? in bash.
    I test the curl command in bash and in perl:
    [larry@august-dev perl]$ curl --max-time 3 http://someweb.org 2>&1 curl: (6) name lookup timed out [larry@august-dev perl]$ echo $? 6
    and if I put it in perl like:
    #!/usr/bin/perl use strict; use warnings; my $result = `curl --max-time 3 http://someweb.org 2>&1`; print "exit status: $?\n"; print "result:\n", $result, "\n";
    then I got:
    [larry@august-dev perl]$ ./foo.pl exit status: 1536 result: curl: (6) name lookup timed out
    How does perl translate the bash $? 6 to its own $? 1536 ?
    Is there a convenient way to translate it back? </code>
      Is there a convenient way to translate it back?

      In short (but not entirely correct), it's 1536 >> 8, i.e. shift right the return value by 8 bits, or divide by 256. For the details, see system.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (6)
As of 2014-08-31 10:24 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (294 votes), past polls