Perlのバッファリングを無効にできない

 通常、出力系はある程度データをまとめて出力や表示を行っています(これをバッファリングと呼ぶ…はず)。

 負荷が減るので大変重宝する機能なのですが、処理状態を例えば、下記のような形でリアルタイムに表示したいとします(というか、そういう風なものを作りたいんです。今)。

抽出処理:|||||||||

 こんな感じで”|”が増えていくような処理をしたい時、すべてが終わってから、

抽出処理:||||||||||||||||||||終了

 と一気に表示されては意味がないわけです。
 そこで、バッファリングの機能をOFFにしようとしました。

$|=1; # (0以外ならばなんでも)

 とすることで、現在選択されているハンドル(通常はSTDOUT)のバッファリング機能が無効となる(とのこと)。
 試しに以下のしょうもないコードを実行してみました。が、バッファリングされる。5秒待つと一気に表示される。たくさん\nを入れても変わらず…何故だぁ。バッファリングを無効にできません…誰か教えてください。

#!/usr/bin/perl -w

$| = 1;

print "Content-Type: text/html\n\n";
print "Hello, World!!\n";
print "<hr>\n";
print "\n\n\n\n\n";
sleep(5);
print "Done";
exit;