|
|
 |

|

 |

| Community » Perl: Allgemeines Forum |
|
auführen von exec aus subroutine heraus
|
Seitenanfang |
| Liebe Gemeinde, innerhalb einer subroutine (die in einem Modul eingebunden ist) soll über exec ein anders Programm augerufen werden, hier speziell zum Zweck der Weiterleitung. # Hauptprogramm.pl Ausgabe Header HTML usw...use betreffende_sub; ... if Bedingungen { betreffene_sub(); } #if Ausgaben HTML wie Tabellen end-Tags body-End Tag usw. ------------------- Modul sub.pm sub betreffene_sub { # hier folgen verschiedene Funktionen mit Datenbankabfragen, Ausgaben etc. exec("meinedomain/cgi-bin/meinProgramm.pl?parameter1=bla&Parameter2=blabla"); } #sub
läuft aber so nicht, liegt es eventuell daran, das es innerhalb einer Subroutine nicht möglich ist? Erschwerend kommt noch hinzu, das das Ende der HTML-Ausgabe im Hauptprogramm erfolgt. d.h. wenn das Programm an dieser Stelle beendet würde?Weiss Jemand Alternativen? (Weiterleitung über HTML Header fällt raus.)
Datum: 19.08.2006-20:34

|
re: auführen von exec aus subroutine heraus
|
Seitenanfang |
| Sorry, war gerade unmögliches Deutsch Erschwerend kommt noch hinzu, das das Ende der HTML-Ausgabe im Hauptprogramm erfolgt. d.h. wenn das Programm an dieser Stelle beendet würde? sollte heissen Erschwerend kommt noch hinzu, das das Ende der HTML-Ausgabe im Hauptprogramm erfolgt. d.h. wenn das Programm an dieser Stelle beendet werden würde, könnte die HTML-Ausgabe nicht komplett werden
Datum: 19.08.2006-20:40

|
re: auführen von exec aus subroutine heraus
|
Seitenanfang |
also das hier:
exec("meinedomain/cgi-bin/meinProgramm.pl?parameter1=bla&Parameter2=blabla"); geht so gar nicht. damit führst du ein programm auf der festplatte aus, das "meinedomain/cgi-bin/meinProgramm.pl?parameter1=bla&Parameter2=blabla" heißt. ich bin ziemlich sicher, dass so ein programm nicht existiert. das ist das ist eine url mit url-parametern. das einfachste wäre wohl, du würdest stattdessen
exec("/pfad/zum/programm.pl" ,"parameter1=bla", "Parameter2=blabla"); machen. dann erledigt CGI.pm das nämlich für dich und tut so, als sei es mit diesen parametern vom webserver aufgerufen worden. ansonsten kann ich nur empfehlen, das skript, wenn es denn auf demselben server liegt, per do, require oder use einzubinden und ein package draus zu machen. ist sauberer.liegt das skript auf einem anderen server, brauchst du stattdessen einen http-request. das geht ganz einfach mit LWP::Simple.
Datum: 21.08.2006-11:07

|
|

|

|

|
 |

|

|
|