Skriptaufruf mit Parametern

12/10/2007 - 12:25 von Ferry Bolhar | Report spam
Hallo,

wahrscheinlich steh ich auf der Seife und es gibt eine ganz
einfache Lösung, aber ich komm momentan nicht dahinter:

Ich habe ein Skript, nennen wir es a.pl, das soll ein zweites
Skript names b.pl aufrufen. Noch keine große Sache, ein

do 'b.pl';

in a.pl sollte genügen. Allerdings soll a.pl an b.pl Parameter
mitgeben können. Auch gut, dann ginge ja eventuell mit

system 'b.pl', 'Para1', 'Para2';

Nicht schön, weil dadurch ja extra ein neuer Prozess
gestartet werden muss, aber zur Not machbar.

Das Problem ist allerdings, dass b.pl a a.pl etliche Werte
zurückliefern soll, was ich durch die Verwendung globaler
Variable abgedeckt hàtte. Das schließt allerdings den
"system"-Ansatz aus. "do" hingegen erlaubt leider nur die
Angabe eines Skriptnamens ohne Parameter (ein

do 'b.pl', 'Para1', 'Para2';

ruft zwar b.pl auf, übergibt aber keine Parameter).

Gibt es hierzu eine Lösung?

Danke & LG,

Ferry

Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: bol@adv.magwien.gv.at
 

Lesen sie die antworten

#1 Frank Seitz
12/10/2007 - 12:49 | Warnen spam
Ferry Bolhar wrote:

Ich habe ein Skript, nennen wir es a.pl, das soll ein zweites
Skript names b.pl aufrufen. Noch keine große Sache, ein

do 'b.pl';

in a.pl sollte genügen. Allerdings soll a.pl an b.pl Parameter
mitgeben können. Auch gut, dann ginge ja eventuell mit

system 'b.pl', 'Para1', 'Para2';

Nicht schön, weil dadurch ja extra ein neuer Prozess
gestartet werden muss, aber zur Not machbar.

Das Problem ist allerdings, dass b.pl a a.pl etliche Werte
zurückliefern soll, was ich durch die Verwendung globaler
Variable abgedeckt hàtte.



Fremde Programme ruft man eigentlich mit system() auf
und kommuniziert mit ihnen per Interprozesskommunikation.

Wenn dein Perl-Programm sich wie ein Modul verhalten kann,
solltest du es - oder die wesentlichen Teile daraus -
auch als Modul gestalten und per Funktions- oder
Methodenaufruf ansprechen. Alles andere hat den Geruch
von verfehltem Design.

Grüße
Frank
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel

Ähnliche fragen