我有以下的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