$|(ダラー縦棒) ってなんだ。

$| 使うとどうなるのか、色々見てみた。

例えば、

print "a";
sleep 2;
print "b";

↑を実行すると、結果は a が表示される前に、2秒sleepし、ab が一緒に表示される。

ここで、

$| = 1;
print "a";
sleep 2;
print "b";

とすると、結果は a が表示されたあと、2秒sleepし、b と表示される。

例えば、

print "a\n";
sleep 2;
print "b\n";

とすると、結果は a が表示されたあと、2秒sleepし、b と表示される。


何も指定しないと、$| はデフォルト 0 。

一行でコマンドと判断するか、複数行にまたがってもコマンドと判断するか・・。ってところなのかなー。