4

如何在 Perl 中对缓冲施加更多控制?我知道我可以用它autoflush来立即刷新缓冲区,或者我可以什么都不做,让 Perl 在需要的时候刷新。

但是我可以更改缓冲区大小吗?或者我可以每隔 30 秒强制刷新一次吗?

我想知道如何为文件句柄或 STDOUT 执行此操作。我试过浏览IO::Handle文档,但无法弄清楚我需要什么。

4

1 回答 1

9

但是我可以更改缓冲区大小吗?

在 5.14 之前,每个文件句柄的缓冲区大小为 4096 字节。

从 5.14 开始,可以在构建 Perl 时选择每个文件句柄缓冲区的大小(通过传递给)。默认值为 8192 字节。-Accflags=-DPERLIOBUF_DEFAULT_BUFSIZ=num_bytesConfigure

或者我可以每隔 30 秒强制刷新一次吗?

您可以随时强制刷新。

use IO::Handle qw( );   # Not needed in 5.14+
$fh->flush();
STDOUT->flush();
于 2013-05-02T19:25:02.850 回答