我是perl的新手,我试图让tcp服务器监听特定端口的数据传输。在几乎每个教程中,我都能看到
use IO::Socket::INET
# flush after every write
$| = 1;
但我无法确定此用例。代码也可以在没有这个块的情况下工作。有人可以指出为什么需要这个,为什么这被用作最佳实践?
答案 0 :(得分:4)
设置$ |每次写入后,非零值强制刷新。如果输出不是STDOUT,它将被块缓冲,并且由于您正在写入套接字,因此您可以将其设置为非零,因为您可以实时查看输出。如果将其设置为零并且您写入套接字,则会因为块缓冲而存在延迟/延迟。