Я пытаюсь прочитать данные без буфера из канала в Perl.Например, в приведенной ниже программе:
open FILE,"-|","iostat -dx 10 5";
$old=select FILE;
$|=1;
select $old;
$|=1;
foreach $i (<FILE>) {
print "GOT: $i\n";
}
iostat выплевывает данные каждые 10 секунд (пять раз).Вы ожидаете, что эта программа сделает то же самое.Однако вместо этого он, кажется, зависает в течение 50 секунд (то есть 10x5), после чего выплевывает все данные.
Как я могу вернуть все доступные данные (вбез буферизации), не дожидаясь полного завершения EOF?
PS Я видел многочисленные ссылки на это в Windows - я делаю это в Linux.