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 に答える