Perlの出力でバッファリングしないようにする

Perlの出力でバッファリングせずに、すぐ出力するには、下記の行を実行します。


use IO::Handle;
STDOUT->autoflush(1);



次のプログラムはサンプルです。
0 1 2 ... と表示するものですが、実行してもすぐには表示が出ません。
出力がバッファリングされているためです。


#!/usr/bin/perl

$i = 0;
while( true ){
print "$i ";
$i++;
sleep( 1 );
}



次のように太字の行を追加します。
これを実行すると、すぐに 0 1 2 ... と表示されます。


#!/usr/bin/perl

use IO::Handle;
STDOUT->autoflush(1);

$i = 0;
while( true ){
print "$i ";
$i++;
sleep( 1 );
}

この記事へのコメント

この記事へのトラックバック