我是Perl noob,所以請原諒這個基本問題。我需要修改現有的Perl程序。我想通過外部程序輸入一個字符串(可以包含多行)並讀取該程序的輸出。所以這個外部程序用來修改字符串。讓我們簡單地使用cat
作爲過濾程序。我試過這樣,但它不起作用。 (中cat
輸出發送到stdout,而不是由perl
被讀取。)如何在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'手冊頁有不同的方法實例的討論和充足。 – tripleee