如何在 Perl 中对缓冲施加更多控制?我知道我可以用它autoflush
来立即刷新缓冲区,或者我可以什么都不做,让 Perl 在需要的时候刷新。
但是我可以更改缓冲区大小吗?或者我可以每隔 30 秒强制刷新一次吗?
我想知道如何为文件句柄或 STDOUT 执行此操作。我试过浏览IO::Handle
文档,但无法弄清楚我需要什么。
如何在 Perl 中对缓冲施加更多控制?我知道我可以用它autoflush
来立即刷新缓冲区,或者我可以什么都不做,让 Perl 在需要的时候刷新。
但是我可以更改缓冲区大小吗?或者我可以每隔 30 秒强制刷新一次吗?
我想知道如何为文件句柄或 STDOUT 执行此操作。我试过浏览IO::Handle
文档,但无法弄清楚我需要什么。
但是我可以更改缓冲区大小吗?
在 5.14 之前,每个文件句柄的缓冲区大小为 4096 字节。
从 5.14 开始,可以在构建 Perl 时选择每个文件句柄缓冲区的大小(通过传递给)。默认值为 8192 字节。-Accflags=-DPERLIOBUF_DEFAULT_BUFSIZ=num_bytes
Configure
或者我可以每隔 30 秒强制刷新一次吗?
您可以随时强制刷新。
use IO::Handle qw( ); # Not needed in 5.14+
$fh->flush();
STDOUT->flush();