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