Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Getting the return value of a command executed using backticks in Perl
- output=`command`
- retcode=$?
- $output=`command`
- $retcode=???
- $? The status returned by the last pipe close, backtick ("``") command, successful call to wait() or waitpid(), or from the
- system() operator. This is just the 16-bit status word returned by the traditional Unix wait() system call (or else is made up
- to look like it). Thus, the exit value of the subprocess is really ("$? >> 8"), and "$? & 127" gives which signal, if any, the
- process died from, and "$? & 128" reports whether there was a core dump. (Mnemonic: similar to sh and ksh.)
- Additionally, if the "h_errno" variable is supported in C, its value is returned via $? if any "gethost*()" function fails.
- If you have installed a signal handler for "SIGCHLD", the value of $? will usually be wrong outside that handler.
- Inside an "END" subroutine $? contains the value that is going to be given to "exit()". You can modify $? in an "END"
- subroutine to change the exit status of your program. For example:
- END {
- $? = 1 if $? == 255; # die would make it 255
- }
- Under VMS, the pragma "use vmsish 'status'" makes $? reflect the actual VMS exit status, instead of the default emulation of
- POSIX status; see "$?" in perlvms for details.
- Also see "Error Indicators".
Add Comment
Please, Sign In to add comment