Thread Rückgabewerte von Programm abfragen mit pipe (5 answers)
Opened by rommi at 2009-03-28 01:20

Gast rommi
 2009-03-28 01:20
#119895 #119895
Hallo Perlfans,

ich habe ein Programm (ich nenne es mal Programm "A") dass, wenn man es startet, permanent einen Output auf STDOUT produziert. Jetzt möchte ich mit einem Perl-Programm (ich nenne es mal Programm "B") diesen Output auf STDOUT abfangen und weiter verarbeiten. Ich denke ich bin mit open und Pipe auf dem richtigen Weg aber leider hab ich es nicht lösen können den Output sofort weiter zuverarbeiten.

Ich habe es mal versucht mit zwei Perl-Programmen. A.pl produziert den Output und B.pl soll den Output sofort verarbeiten. Sobald ich aber den sleep in A.pl erhöhe steht das Programm..

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#XXXXXXXXXXXXXXXXX Code von A.pl XXXXXXXXXXXXXXXXX
use Time::HiRes qw(sleep);
$out = 1;
while(1==1)
{
sleep 0.01;

#### schreib nach stdout
print "\n$out";
$out++;

#### fang wieder bei 0 an
if($out > 50){$out = 1;}
}

#XXXXXXXXXXXXXXXXX Code von B.pl XXXXXXXXXXXXXXXXX
open(FH, "c:\\ccc.pl |") or die "Open-Fehler...\n";
while($tmp=<FH>)
{
chomp($tmp);

#### Output nach bestimmten Wert fragen
if($tmp eq 25){print "\nTreffer";}

print "\n$tmp";
}
close (FH);


Ich möchte eigentlich jeden Output, der von Programm A aktuell auf STDOUT ausgegeben wird mit Programm B prüfen und ggfs. den Output von A sofort verarbeiten können. Danke im voraus, Gruss rommi

PS: Hab Windows-XP im Einsatz

View full thread Rückgabewerte von Programm abfragen mit pipe