Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取在Perl中使用backticks执行的命令的返回值_Perl_Command_Return Code - Fatal编程技术网

获取在Perl中使用backticks执行的命令的返回值

获取在Perl中使用backticks执行的命令的返回值,perl,command,return-code,Perl,Command,Return Code,我可以在bash中执行以下操作: output=`command` retcode=$? 在Perl中有没有同样的方法?大概是这样的: $output=`command` $retcode=??? 您可以读取$?变量(如在shell中)。从man perlvar $? The status returned by the last pipe close, backtick ("``") command, successful call to wait() or waitpid()

我可以在bash中执行以下操作:

output=`command`
retcode=$?
在Perl中有没有同样的方法?大概是这样的:

$output=`command`
$retcode=???

您可以读取
$?
变量(如在shell中)。从
man perlvar

 $?      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".

从Perl5.10开始,您还拥有
${^CHILD\u ERROR\u NATIVE}

发件人:

${^CHILD\u ERROR\u NATIVE}

此变量提供上次管道关闭返回的本机状态, backtick命令,成功调用wait()或waitpid(),或从 system()运算符。有关详细信息,请参见perlvar


您尝试时发生了什么?:-)说真的,尝试这样的事情比在这里提问要快得多。