Perl 捕获子进程的 STDERR 和 STDOUT
Perl catching STDERR and STDOUT of subprocess
我有 Perl 脚本正在执行另一个脚本。我如何确保在执行 CONNECTION.pl
时,我将捕获 STDERR 和 STDOUT,以便我可以将其放入父脚本的日志中?波纹管是来自父脚本的代码:
my $systemcmd ='perl bin/CONNECTION.pl "'.$expanded_sql.'" "'.$tmp_file.'" "'.$fetch.'"';
eval {
my $rc = system($systemcmd );
};
if ($@) {
$errmsg = $@;
croak {message=>$errmsg};
unlink $tmp_file;
}
尝试使用 Capture::Tiny to wrap the call to system。
此外,将 Perl 脚本 CONNECTION.pl 更改为一个模块并从您的脚本中 use 它可能比再次调用 perl 更干净。
我有 Perl 脚本正在执行另一个脚本。我如何确保在执行 CONNECTION.pl
时,我将捕获 STDERR 和 STDOUT,以便我可以将其放入父脚本的日志中?波纹管是来自父脚本的代码:
my $systemcmd ='perl bin/CONNECTION.pl "'.$expanded_sql.'" "'.$tmp_file.'" "'.$fetch.'"';
eval {
my $rc = system($systemcmd );
};
if ($@) {
$errmsg = $@;
croak {message=>$errmsg};
unlink $tmp_file;
}
尝试使用 Capture::Tiny to wrap the call to system。
此外,将 Perl 脚本 CONNECTION.pl 更改为一个模块并从您的脚本中 use 它可能比再次调用 perl 更干净。