sleep関数とprint出力(バッファリングについて)

sleep関数を覚えたので、試しにこんなのを作ってみた。

#!/usr/bin/perl
use strict;
use warnings;

while(){
  my $delaytime = int( rand(60) );
  print "sleeping $delaytime second\n";

  for(my $i=0;$i<$delaytime;$i++){
    sleep(1);
    print '.';
  }
  print "\n";

}

が、うまく動かない。


調べてみると、原因はどうやらprintにあるらしい。
http://x68000.q-e-d.net/~68user/webcgi/buffering.html


printって、こんな風に動いてたのか、と一つ勉強になった次第。