一文字ずつパラパラと表示する方法が紹介されていた。
まずは紹介されているものをそのまま書いて動くことを確認する。
split(//) で、一文字ずつに分解されることを知る。
ということは、分解した一文字ずつをprintし、sleepをはさんでいけばいいのではないかと思って、
while(<>){ for(split(//)){ print; sleep 1; } }とやってみたが、うまくいかない。
元のソースを見てみると、以下のような謎の1行があった。
$|=1;そしてこれを書くと、想定どおりの動きをした。
$| とは何だろう?
調べてみたら、この値を0以外にすると出力のバッファリングをしないとのことであった。
通常はバッファリングするのでまとめて表示されるのだ。
1文字ずつパラパラと表示させるには、これを無効にする必要があったのだ。