>>364
STDIN処理中の他スレッドブロックは確認できず。
NT系と9x系の違いかな。
perlにブロックしてるような記述が見当たらないので、(見落としでなければ)
VCのライブラリかWinのコンソールシステムでのブロックなのか。
STDINのnon-blockingはかなり難しそうだね。
いっそ、本物の別プロセスを使ってみるとか?
open($pipe,qq/$^X -e "print while <STDIN>" |/); とか

>>365
今回の件と改行コードは関係無いよ。
<STDIN> 中の他スレッド停止と言ってたから、

if(fork) {
sleep 3;
print "P:Hit Enter\n";
<STDIN>;
print "P:done\n";
} elsif(fork) {
$a=time,print("C1:$a\n"),sleep 1 for (0..7);
print "C1:done $a\n";
} else {
$a=time,sleep 1 for (0..7);
print "C2:done $a\n";
}

コレでHit Enterが表示された後、Enter入れるまでC1の表示が止まるんだと思う。
C2は、スレッドの停止とprintでのロックの判断用。