如何在Perl中对缓冲进行更多控制?我知道我可以使用autoflush立即冲洗缓冲区,或者我什么都不做,让Perl在感觉就好时冲洗.
但我可以更改缓冲区大小吗?或者我可以每隔30秒强制冲洗一次吗?
我想知道如何为文件句柄或STDOUT执行此操作.我已经尝试过了IO :: Handle文档,但一直无法弄清楚我需要什么.
解决方法
But can I change the buffer size?
在5.14之前,每个文件句柄缓冲区的大小为4096字节.
从5.14开始,可以在构建Perl时选择每个文件句柄缓冲区的大小(通过将-Accflags = -DPERLIOBUF_DEFAULT_BUFSIZ = num_bytes传递给Configure).默认值为8192个字节.
Or can I force a flush every,say,30 seconds?
你可以随时强制冲洗.
use IO::Handle qw( ); # Not needed in 5.14+ $fh->flush(); STDOUT->flush();