InfLoop是一个在无限循环中打印随机数的应用程序。以下语句是阻塞的,即perl等待直到InfLoop退出的应用程序。
$out=`./InfLoop`;
我想知道有没有办法在perl中读取打印的数字,而无需等待InfLoop退出。至少通过使用fork,IPC或类似的东西。
答案 0 :(得分:3)
在将管道关闭到./InfLoop
open my $pipe, "-|", "./InfLoop" or die $!;
# read first N lines
for my $i (1..3) {
my $line = readline($pipe);
print $line;
}
close($pipe);