perl - 在我打印其他内容之前,在 Perl 中打印一个点不会出现在屏幕上

标签 perl

这听起来很疯狂,但是当我使用 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/

相关文章:

perl - 如何在 CPAN 中找到使用某些模块的文件?

linux - 将 perl 结果输出到文件中

perl - 在Perl中,是否有合适的方法将undef手动转换为0?

linux - 设置二进制传输模式

regex - 如何在 Perl 中删除 < 和 > 之间的字符?

database - Perl:在磁盘上存储一个巨大的散列有问题吗?

perl - 发送/接收/开始/结束对 AnyEvent 的条件变量意味着什么?

perl - @$ 和 $$ 在 Perl 中是什么意思?

perl - 如何使用 Net::OpenID::Consumer 和 Yahoo OpenID 避免编码错误?

perl - 我的Perl grep为什么不返回第一场比赛?