我正在尝试使用Perl的系统函数来捕获输出,以执行并将系统命令的ouptut重定向到文件,但由于某种原因,我没有得到整个输出.
我正在使用以下方法:
system("example.exe >output.txt");
解决方法
与
MVS’s answer相同,但现代且安全.
use strict; use warnings; open (my $file,'>','output.txt') or die "Could not open file: $!"; my $output = `example.exe`; die "$!" if $?; print $file $output;
更轻松
use strict; use warnings; use autodie; open (my $file,'output.txt'); print $file `example.exe`;
如果你需要STDOUT和STDERR
use strict; use warnings; use autodie; use Capture::Tiny 'capture_merged'; open (my $file,'output.txt'); print $file capture_merged { system('example.exe') };