我有以下的Perl代码:Perl的打印缓冲冲
STDOUT->autoflush(1);
foreach(...)
{
...
foreach(...)
{
print("Processing $folder");
$|=1;
process($folder);
}
...
}
但print语句只能在循环的第一次迭代,并且不打印后的事情。任何想法为什么?
编辑:我找到了原因,并在答案中也加入了它。 将溶液:
添加以下行 循环内,并且它的工作:
选择STDOUT;
我认为process()函数 中的代码应该已经修改了默认的 输出缓冲区。这是其他人写的 的代码!
我不知道这是用Perl问题 允许这个或 开发商谁没有改回 为默认值。
最后的代码是这样的:
foreach(...) { ... foreach(...) { select STDOUT; print("Processing $folder"); $|=1; process($folder); } ... }
感谢所有...
你肯定有更多的比一次迭代? – innaM 2009-08-03 11:23:15