#!/usr/bin/perl use 5.010; use strict; use warnings; #$ENV{IPCRUNDEBUG}="data"; # debug modus use IPC::Run qw( start pump finish timeout harness ); my (@prog, $in, $out, $err); # Incrementally read from / write to scalars. # $in is drained as it is fed to cat's stdin, # $out accumulates cat's stdout # $err accumulates cat's stderr # $h is for "harness". @prog = ('perl','X:\bin\doit.pl' ); my $h = start \@prog, \$in, \$out, \$err, 10; # Erste Ausgabe des aufgerufenen Programms pump $h until length $out; # Prüfen ob Eingabe erwünscht if ($out =~ /Eingaben:/mg) { # und Eingabe an externes Programm raus $in = "aoeiooeiikmdujkdu\n"; $in .= "abcdefg\n"; $in .= "a\n"; $in .= "ax\n"; $in .= "asseae\n"; } # Hol Ausgabe des externes Programm ab pump $h until length $out; # und Schluss ... finish $h or die "@prog beendet mit Fehlercode $?"; # zeig was das Programm ausgegeben hat say "PROGRAMMAUSGABE:"; say $out;