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
<strong>use IO::Handle;</strong>
<strong>STDOUT->autoflush(1);</strong>
$i = 0;
while( true ){
print "$i ";
$i++;
sleep( 1 );
}
コメント