我刚刚开始在安全CRT上使用Perl 5.26,我编写了一个Perl脚本来捕获调用多个Perl脚本的情况。
my @secondCommand = capture("perl clientquery.pl -r $cid -l test.log -is $sqlFile");
我想知道如何捕获每个捕获调用的退出状态,如果失败,如何使原始脚本死亡。
答案 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(例如, 被信号终止)或没有启动。在这种情况下 也会引发异常。