相关疑难解决方法(0)

如果有任何内容写入STDERR,我如何运行系统命令并死掉?

我正在编写一个使用外部脚本的Perl脚本.外部脚本必须从特定目录运行,因此我发现以下内容非常有用:

use IPC::System::Simple qw(capture);

my @args = ('external script path...', 'arg1', ...);
my $out = capture( [0], "cd $dir ; @args" );
Run Code Online (Sandbox Code Playgroud)

有时外部脚本会将内容写入STDERR,但仍会返回0.我希望捕获这些时间和confess(或die).由于我不控制外部脚本的返回值,我想也许我可以捕获它的STDERR所以我会有这样的东西:

my ($out, $err) = cool_capture( [0], "cd $dir ; @args" );
say "Output was: $out";
if ($err) {
 die "Error: this was written to STDERR: $err";
}
Run Code Online (Sandbox Code Playgroud)

我能做什么?

perl system die stderr

1
推荐指数
1
解决办法
1063
查看次数

标签 统计

die ×1

perl ×1

stderr ×1

system ×1