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って、こんな風に動いてたのか、と一つ勉強になった次第。

この記事を書いた人

五藤隆介(goryugo)

愛知県在住1980年生まれ。

「仕事効率化」「ライフログ」「家族Hack」「デジタル情報共有」みたいなことを書いてます。

2014年に結婚して料理を覚えて、理系の料理という本を書きました。

年に1〜2回子連れで長旅をするようになり、新しく旅ブログも作りました。

この記事が気に入ったら
いいね!しよう

最新の情報をお届けします