【发布时间】:2012-06-01 16:18:14
【问题描述】:
我需要修改现有的 Perl 程序。我想通过外部程序传输一个字符串(可以包含多行)并读取该程序的输出。这个外部程序用于修改字符串。让我们简单地使用cat 作为过滤程序。我试过这样,但它不起作用。 (cat 的输出进入 STDOUT,而不是被perl 读取。)
#!/usr/bin/perl
open(MESSAGE, "| cat |") or die("cat failed\n");
print MESSAGE "Line 1\nLine 2\n";
my $message = "";
while (<MESSAGE>)
{
$message .= $_;
}
close(MESSAGE);
print "This is the message: $message\n";
我读到 Perl 不支持这种方式,因为它可能会陷入死锁,我可以理解。但是那我该怎么做呢?
【问题讨论】:
-
perlipc手册页有讨论和大量不同方法的示例。