我有一個可執行文件從STDIN讀取,輸出到STDOUT。我用什麼從STDIN讀取/寫入STDOUT的子進程?
我需要一個Perl腳本,它將這個可執行文件作爲一個子進行分叉,並寫入該子進程的STDIN並從STDOUT中讀取。
這是Windows所必需的。任何想法或建議?
我有一個可執行文件從STDIN讀取,輸出到STDOUT。我用什麼從STDIN讀取/寫入STDOUT的子進程?
我需要一個Perl腳本,它將這個可執行文件作爲一個子進行分叉,並寫入該子進程的STDIN並從STDOUT中讀取。
這是Windows所必需的。任何想法或建議?
規定的解決方案是IPC::Open2模塊,但下面的代碼可能會掛在Windows上。
#! /usr/bin/perl
use warnings;
use strict;
use IPC::Open2;
my $pid = open2 my $out, my $in, "./myfilter.exe";
die "$0: open2: $!" unless defined $pid;
print $in "$_\n" for qw/ foo bar baz /;
close $in or warn "$0: close: $!";
while (<$out>) {
chomp;
print "Parent: [$_]\n";
}
close $out or warn "$0: close: $!";
似乎有適用於Windows沒有清晰的解決方案。 – Avinash 2010-08-16 17:15:32
'perldoc -q'應該被廣告更多。 – Dummy00001 2010-08-16 21:40:13