Wil*_*ard 3 bash perl pipe stdout
我有一个 perl 脚本:
warn "1\n";
print "2\n";
warn "3\n";
print "4\n";
Run Code Online (Sandbox Code Playgroud)
我将输出通过管道传输到文件:
perl script.pl &> foo
Run Code Online (Sandbox Code Playgroud)
猫福:
1
3
2
4
Run Code Online (Sandbox Code Playgroud)
为什么输出不按顺序,我该如何解决?
小智 5
打印一行后会自动刷新 STDERR,而 STDOUT 则不会。只有在 STDOUT 缓冲区已满时才会刷新它。在 STDOUT 上也强制自动刷新使用
STDOUT->autoflush(1);
Run Code Online (Sandbox Code Playgroud)
(如果你有一个旧的 perl,那么上面的可能不起作用,你必须使用类似的东西$| = 1;
)
归档时间: |
|
查看次数: |
1181 次 |
最近记录: |