获取在Perl中使用反引号执行的命令的返回值

我可以在bash中执行以下操作:
output=`command`
retcode=$?

在Perl中有什么办法吗?这样的事情

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

解决方法

你可以阅读$?变量(如在shell中).从人的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".

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...