【发布时间】:2009-03-06 14:03:52
【问题描述】:
我想从 Perl(在 Linux 上运行)中建立一个进程管道,由两个部分组成,在不同的时间运行。
例如:
启动消费者进程:
open( OUT, "| tar xvf - " ) || die "Failed: tar: $!";
然后很久以后开始生产者进程:
open( IN, "gpg -d $file |" ) || die "Failed: gpg: $!";
然后以某种方式将 gpg 的输出重定向到 tar 的输入。
我可以通过建立一个循环来做到这一点:
while (<IN> ) {
print OUT;
}
但我想知道是否可以通过重定向将这两个进程粘合在一起。
【问题讨论】:
-
为什么不用 'or' 而不是 '||'? 'or' 的优先级低于任何其他运算符,因此如果您在函数中省略括号,则 'or' 的工作方式相同,而 '||'将开始覆盖函数的参数,这很少是你想要的。另外,它看起来更好(对我来说)。
标签: perl redirect filehandle