2013-12-17 70 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 –