Perlのパイプからバッファリングされていないデータを読み取ろうとしています。たとえば、以下のプログラムでは:
open FILE,"-|","iostat -dx 10 5";
$old=select FILE;
$|=1;
select $old;
$|=1;
foreach $i (<FILE>) {
print "GOT: $i\n";
}
iostatは10秒ごと(5回)にデータを吐き出します。あなたはこのプログラムが同じことをすることを期待するでしょう。ただし、代わりに50秒間(つまり10x5)ハングしているように見え、その後すべてのデータを吐き出します。
EOFを完全に待たずに、利用可能なデータを(バッファなしで)返すにはどうすればよいですか?
PS私はWindowsでこれについて多くの言及を見てきました-私はLinuxでこれを行っています。