如何在Perl中对缓冲区施加更多控制?我知道我可以使用autoflush
来立即刷新缓冲区,否则我什么也不做,让Perl感觉像刷新一样。如何在Perl中控制缓冲区刷新的时间
但是,我可以更改缓冲区大小吗?或者我可以每隔30秒强制冲洗一次?
我想知道如何为文件句柄或STDOUT做到这一点。我试过了IO::Handle
文档,但一直没有弄清楚我需要什么。
如何在Perl中对缓冲区施加更多控制?我知道我可以使用autoflush
来立即刷新缓冲区,否则我什么也不做,让Perl感觉像刷新一样。如何在Perl中控制缓冲区刷新的时间
但是,我可以更改缓冲区大小吗?或者我可以每隔30秒强制冲洗一次?
我想知道如何为文件句柄或STDOUT做到这一点。我试过了IO::Handle
文档,但一直没有弄清楚我需要什么。
但是,我可以更改缓冲区大小吗?
5.14之前,每个文件句柄缓冲区的大小是4096字节。
从5.14开始,在构建Perl时(通过传递-Accflags=-DPERLIOBUF_DEFAULT_BUFSIZ=num_bytes
到Configure
),可以选择每个文件句柄缓冲区的大小。默认值是8192字节。
或者我可以每30秒钟强制冲洗一次吗?
您可以随时强制刷新。
use IO::Handle qw(); # Not needed in 5.14+
$fh->flush();
STDOUT->flush();
添加了更多信息。 – ikegami 2013-05-02 19:34:48
您可以获得STDOUT的文件句柄对象,例如由'我的$ fh = *标准输出{IO}'。 – amon 2013-05-02 19:27:25