net*_*djw 1 printing perl while-loop
我有这个代码Perl:
print "Processing ... ";
while ( some condition ) {
# do something over than 10 minutes
}
print "OK\n";
Run Code Online (Sandbox Code Playgroud)
现在我在while循环结束后返回第一个打印件.
如何在启动while循环之前打印messeage ?
输出是缓冲的,这意味着程序决定它实际呈现的时间print.你可以放
$| = 1;
Run Code Online (Sandbox Code Playgroud)
stdout在这个单一实例中刷新.对于更多方法(自动刷新,文件刷新等),您可以在SO周围搜索有关此问题的问题.
通常,perl将在将其刷新到设备之前缓冲多达8KB的输出文本,或者如果设备是终端则将缓冲到下一个换行符.您可以通过添加来避免这种情况
STDOUT->autoflush
Run Code Online (Sandbox Code Playgroud)
假设您要打印到代码的顶部STDOUT.这将迫使数据后,每被刷新print,say或write操作
请注意,这与使用相同,$| = 1但显着不那么神秘,并允许您更改任何给定文件句柄的属性