如何在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