Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re: Why is this exit code -1?

by haukex (Archbishop)
on Nov 07, 2018 at 17:29 UTC ( [id://1225371]=note: print w/replies, xml ) Need Help??


in reply to Why is this exit code -1?

Have a look at the documentation (Update: you'll also find some example code there how to inspect system for errors):

Return value of -1 indicates a failure to start the program or an error of the wait(2) system call (inspect $! for the reason).

And turn on warnings:

$ perl -wMstrict -le 'print system("exit 3");print "<$!>"' Can't exec "exit": No such file or directory at -e line 1. -1 <No such file or directory>

exit is a shell builtin, not an actual system command.

$ which exit $ perl -wMstrict -le 'print system(q{/bin/bash -c "exit 3"}); print "<$!>\n",$?>>8' 768 <> 3

And the AM post explains why the shell doesn't get called in my first example above:

$ perl -wMstrict -le 'system("pstree -A $$ ")==0 or die;' perl---pstree $ perl -wMstrict -le 'system("pstree -A $$;")==0 or die;' perl---sh---pstree

By the way, I can recommend IPC::System::Simple because of its better error handling, and I would also recommend avoiding the shell, if possible - I wrote about the issues with it here, and fellow monk afoken wrote about The problem of "the" default shell.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others chanting in the Monastery: (10)
As of 2024-04-23 09:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found