linux-l: Aufruf vom anderen Perl-Script im Perl-Script

Steffen Solyga solyga at absinth.net
Do Apr 27 13:49:41 CEST 2000


Dear Manuel Tennert, concerning your mail sent on Thursday, 2000/04/27 12:14
let me reply the following:

> Seit geraumer Zeit plage ich mich mit einem "kleineren" Problemchen
> bezüglich Perl herum. Ich versuche krampfhaft in einem Perlscript andere
> Perscripte aufzurufen, wobei es eine Eingabe- und auch Ausgabedatei beim
> Aufruf des Perlscriptes geben soll, die zudem selbst gewählt werden
> kann....verwirrend, gelle ??
> Also mein Versuch im Perlscript folgendes einzubinden:
> 
> exec("perl.exe seiten.pl $eingabedtaei >$ausgabedatei");
> 
> verlief in die Hose, es passiert rein gar nichts.
> Gibt es da denn eine Möglichkeit !???

Warum nicht als Unterprogramm? Das würde das Starten eines zusätzlichen
Interpreters unnötig machen und wäre flexibler. Vor allem kann perl
eigentlich alles im Speicher, tausende Hilfsdateien sind unnötig.
Ansonsten perl.exe (Windows?) als erste Zeile in seiten.pl schreiben

#!......\perl.exe

und Aufruf per system (exec ist vermutlich nicht das, was Du willst, weil
diese Funktion den primären Interpreter ersetzt und Dein aufrufendes
Programm damit beendet wird)

system( "...\seiten.pl $eingabedtaei >$ausgabedatei" );

oder wenn Du den output noch parsen willst

@document = ();
open( SEITEN, "...\seiten.pl $eingabedtaei |" );
while( <SEITEN> ) {
  push( @document, $_ );
}
close( SEITEN );
# mach irgendwas mit dem array, z.B. sortieren
open( OUT, ">$ausgabedatei$" );
foreach (@document) {
  print OUT $_;
}
close( OUT );


Warum Dein obiger Aufruf nicht funktioniert, ist mir nicht so ganz klar,
allerdings habe ich mit perl auf NT auch kaum Erfahrung. Vermutlich wird
perl.exe nicht gefunden, also mal den ganzen Pfad angeben sowas wie
exec( "C:\\was\weiß\ich\was\perl.exe seiten.pl $eingabedtaei >$ausgabedatei" );
Und notfalls mal alle Pfade angeben.
Ganz sicher kann ich sagen, daß es mit system() geht, sowas haben wir auf
NT in der Firma laufen.

Gruß, Steffen.

-- 
--------------------------------------------
Steffen Solyga
mail: solyga at absinth.net
www : http://www-tet.ee.TU-Berlin.DE/solyga/
--------------------------------------------



Mehr Informationen über die Mailingliste linux-l