这听起来很疯狂,但是当我使用 printf(".")
行时,屏幕上什么也没有显示,直到我打印其他内容。当我打印出其他信息时,从一条简单的行返回到实际数据,所有备份的点都会打印出来。如果我使用 printf(".\n")
那么它工作正常。
如果有什么不同,我会在 Ubuntu 系统上执行此操作。
谢谢
最佳答案
这是一个缓冲问题。尝试设置自动刷新:$| = 1
;
{
$| = 1;
print ".";
}
sleep 1 for 1..5;
STDOUT
是行缓冲的,所以 print ".\n"
工作正常
更多信息:Suffering from buffering?
另一个有用的答案:Can you force-flush output in Perl?
关于perl - 在我打印其他内容之前,在 Perl 中打印一个点不会出现在屏幕上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51471541/