Что я использую для чтения из STDIN / записи в STDOUT дочернего процесса? - PullRequest
2 голосов
/ 16 августа 2010

У меня есть исполняемый файл, который читает из STDIN и выводится в STDOUT.

Мне нужен скрипт Perl, который разветвляет этот исполняемый файл как дочерний и записывает в STDIN этого дочернего процесса и читает из STDOUT.

Требуется для Windows.Есть идеи или предложения?

Ответы [ 2 ]

3 голосов
/ 16 августа 2010
2 голосов
/ 16 августа 2010

Предписанным решением является модуль 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: $!";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...