0

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

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

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

4

1 回答 1

2

IPC::System::Simple 提供$EXITVAL,它捕获运行的命令的退出代码 viacapture和其他功能。

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。在这种情况下,也会抛出异常。

于 2018-10-17T12:36:39.250 回答