コマンドラインからperlスクリプトを実行しています。
同じ処理を何度も繰り返すのですが、過剰に走らせるとシステムが落ちてしまうので
1回の処理につき10秒間sleepさせています。
そのスリープを目に見える形で表してみようと一つ処理が終わるごとに以下のようにしてみました。

print "sleep";
foreach(0 .. 10){
print '.';
sleep(1);
}
print "\n";

1秒ごとにピリオドがprintされることを期待してたのですが、10秒後に
「sleep..........」
とまとめて出力されます。
なぜなのでしょうか?