Lij*_*hew 3 perl external-process
我正在执行一个diff命令perl.
my @lines = `/usr/local/bin/diff -udr \"$expected_file\" \"$gen_file\"`;
if ($? != 0)
{
    print ERRFILE "Diff between $expected_file and $gen_file failed\n";
    return $diff_err;
}
diff由于某种原因,这里可能失败了.例如:stderr显示/ usr/local/bin/diff:test.txt:没有这样的文件或目录.我想在程序中阅读此消息.如何找到diff命令的stderr消息(或者grep我执行的任何命令)?
提前感谢您的帮助.
谢谢,Mathew Liju
bri*_*foy 12
这在perlfaq8中得到了解答:如何从外部命令捕获STDERR?
如果我想读取进程的STDOUT和STDERR,我使用Perl附带的IPC :: Open3.这样,我不必合并这些流,然后找出输出的哪一部分来自什么.
我会尽可能避免临时文件(所以没有2>file.txt).当我可以直接读取STDERR时,这只是太多的工作和代码.
| 归档时间: | 
 | 
| 查看次数: | 2606 次 | 
| 最近记录: |