perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 25
Click for quality!




11.02.2012 / 20:18

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragProgramm mit Perl Steuern
Seitenanfang
Hallo,
ich bin mir nicht sicher, nach was ich suchen könnte bei meinem Problem, denn ich weiß nicht wie man es nennt.

Mein Problem ist folgendermaßen.

Ich habe ein Programm dass nach dem Start verschiedene Parameter abfragt. Ich habe mir die ganze zeit ein kleines bashscript geschrieben was ich dann mit system ausführe, aber das ist irgendwie keine sehr saubere lösung, desswegen wollte ich mal fragen, wie ich da vorgehen kann dass mit einer reinen perllösung zu machen.

hier ein beispiel

#!/bin/csh -f
echo "--- TEST --- "
/apps/prod/programmname <<EOF
euler
test
EOF

wobei euler und test die parameter sind die das c programm nacheinander abfragt...

kann mir da jemand helfen?

habe schon mit system versucht das programm aufzurufen und dann einfach eine variable zu übergeben, die die argumente mit \n getrennt enthält, aber das klappt nicht.
wäre für ideen sehr dankbar...

Datum: 02.04.2007-11:30

Beitragre: Programm mit Perl Steuern
Seitenanfang
Du könntest mit open und ner Pipe arbeiten.

open my $fh, "| programm ";
print $fh euler,"\n",test,"\n";
close $fh;

Datum: 02.04.2007-15:46

Beitragre: Programm mit Perl Steuern
Seitenanfang
danke, dass hat mir geholfen.

Datum: 02.04.2007-20:44

Beitragre: Programm mit Perl Steuern
Seitenanfang
Also ich will mich nochmal für die Antwort bedanken, hat mir bis jetzt gute Hilfe geleistet. Ärgere mich jedoch jetzt mit einem neuen Problem rum.

Ich versuche jetzt die Ausgabe von einem solchen Programm aufzufangen.
Im Moment schreibe ich mit perl ein Shellscript das ich anschließend mit qx() ausführe und so die Ausgabe in eine Datei schreibe.

Hat hier vielleicht jemand eine Idee wie ich das vereinfachen kann?

Datum: 14.05.2007-09:51

Beitragre: Programm mit Perl Steuern
Seitenanfang
Ist das gleiche Prinzip

# lesende PIPE
open(INPIPE, 'befehl |') or die $!;
my $daten = <INPIPE>;

# schreibende PIPE
open(OUTPIPE, '| befehl') or die $!;
print OUTPIPE "daten\n";

Auf diesen Weg kannst du aber KEINE PIPE in beide Richtungen oeffnen, also gleichzeitig Lesen und Schreiben vom/zum Prozess ist so nicht moeglich


# lesende und schreibende PIPE
open(PIPE, '| befehl |') or die $!; # FALSCH!

Dafuer gibt es aber auch eine Loesung, ein Modul namens IPC::Open2 (Eingabe-, Ausgabekanal) und das Modul IPC::Open3 (Eingabe-, Ausgabe- und Fehlerkanal).

Die perldoc perlipc behandelt dieses Thema.

Datum: 14.05.2007-12:53

-






-
-