でバッククォートを使用して実行されたコマンドの戻り値の取得:は、私はbashで以下の操作を行うことができますPerlの
output=`command`
retcode=$?
はPerlで同じことをする方法はありますか?このような何か:
$output=`command`
$retcode=???
でバッククォートを使用して実行されたコマンドの戻り値の取得:は、私はbashで以下の操作を行うことができますPerlの
output=`command`
retcode=$?
はPerlで同じことをする方法はありますか?このような何か:
$output=`command`
$retcode=???
あなたは(シェルのように)$?
変数を読み取ることができます。 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".
とPerl 5.10以降からは、あなたも${^CHILD_ERROR_NATIVE}
を持っています。
${^CHILD_ERROR_NATIVE}
この変数は、最後のパイプクローズ、 バックティックコマンド、(待つように成功したコール)またはwaitpidの(から返されたネイティブの状態を示します)、または から:http://perldoc.perl.org/perl5100delta.html#New-internal-variablesから
system()演算子。詳細については、perlvarを参照してください。
試したときに何が起こったのですか? :-)真剣に、ちょうどそのようなことをしようとすると、ここで質問をするよりはるかに速くなるでしょう。 –