2013-12-17 66 views
0

InfLoop是一个在无限循环中打印随机数的应用程序。以下语句是阻塞的,即perl等待直到应用程序InfLoop退出。Perl从无限循环中读取

$out=`./InfLoop`; 

我想知道有什么方法可以在不等待InfLoop退出的情况下读取perl中的打印数字。至少通过使用叉子,IPC或类似的东西。

回答

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); 
+0

哇哇整洁的方式之前,谢谢。我尝试了许多没有意义的。 – Dinesh

+0

如何使其成为双向? – Dinesh

+1

http://perldoc.perl.org/perlipc.html#Bidirectional-Communication-with-Another-Process –