4
我有以下代码,它从命令'some_command'读取输出。 'some_command'是一个持续的过程,它保持打印输出直到它被杀死。我想知道如果我关闭文件句柄或最后调用它,它是否也会终止'some_command'进程,或者'some_command'可能会作为孤立进程继续运行。我基本上想要从命令中读取输出,直到找到带有/ Output /的行,然后终止。关闭句柄的Perl终止命令
my $mycommand = 'some_command';
open IN, "$mycommand 123456 |" or die("Failed: $!");
while(my $line = <IN> && !$stop) {
if($line =~ /Output/) {
# work is done
last;
$stop = 1;
}
}
close IN;
在你上面提供的例子,我没有打电话给关闭? – yuen23 2012-07-25 14:51:30
@ user1540909,我不是故意要忽略它。如果你没有明确地关闭它,它将在退出时关闭。尽管...如果你使用一个包变量(而不是词法),Perl中的一个wontfix错误使得它不会为孩子“等待”。 – ikegami 2012-07-25 15:10:55
感谢您的解释! – yuen23 2012-07-25 17:47:40