如何捕获在一个perl脚本中调用另一个perl脚本的捕获的退出状态,如果失败,它应该死亡

时间:2018-10-17 11:10:22

标签: perl unix exit secure-crt

我刚刚开始在安全CRT上使用Perl 5.26,我编写了一个Perl脚本来捕获调用多个Perl脚本的情况。

 my @secondCommand = capture("perl clientquery.pl -r $cid -l test.log -is $sqlFile");

我想知道如何捕获每个捕获调用的退出状态,如果失败,如何使原始脚本死亡。

1 个答案:

答案 0 :(得分:2)

IPC::System::Simple provides $EXITVAL,捕获通过capture和其他功能运行的命令的退出代码。

  

由IPC :: System :: Simple执行的任何命令的退出值都可以   总是从$IPC::System::Simple::EXITVAL变量中检索:

     

当检查捕获结果时,此功能特别有用,   从命令中返回捕获的文本。

use IPC::System::Simple qw(capture $EXITVAL EXIT_ANY);

my @enemies_defeated = capture(EXIT_ANY, "defeat_evil", "/dev/mordor");

print "Program exited with value $EXITVAL\n";
     如果命令未正常退出,则

$EXITVAL将被设置为-1(例如,   被信号终止)或没有启动。在这种情况下   也会引发异常。