linux-l: CGI-Script im CGI-Script aufrufen
Oliver Hillmann
oh at novaville.de
Di Jan 30 20:53:43 CET 2001
On Tue, 30 Jan 2001, Manuel Tennert wrote:
> In der letzten else-Anweisung versuche ich dann mit Hilfe von
> system("perl maillog.pl"); ein weieteres Script aufzurufen. Leider aber
> schreibt er mir dann, nachdem er auf eine Fehlerseite wechseln soll,
> Location blablabla auf dem Bildschirm. Gibt es auch noch eine andere
> Möglichkeit ein CGI an dieser Stelle aufzurufen, ausser mit System ???
> Klar ich koennte den Quelltest des anderen Scripts zum einen in eine
> subroutine packen und die dann aufrufen lassen, leider aber wird mir das
> script dann ein wenig zu lang.
Wie isses mit do() oder require()? STDOUT kannste umbiegen mit
open(STDOUT, ">/dev/null");
oder mit
open(STDOUT, ">&F");
wenn F schon ein offenes Filehandle ist.
close(STDOUT);
geht auch, aber danach isses weg... Oooch blöd. man perlfunc (und
dann mit /^ *open nach dem open Befehl suchen) hat dazu ein
Beispiel, auch wie Du vorher STDOUT nach woandershin sicherst, falls
Du Dein STDOUT noch brauchst. In Kürze (und per Cut&Paste :)
open(OLDOUT, ">&STDOUT");
open(STDOUT, ">irgendnedatei");
do "maillog.pl";
open(STDOUT, ">&OLDOUT);
Vielleicht auch ein eval {} um das do?
Viel Glück!
Oli
P.S.: An die Perl-Hengste? Geht das auch so?
{
local *STDOUT;
open(STDOUT, ">wohinauchimmer");
do "maillog.pl";
}
ohne dass ich STDOUT vorher in einen anderen Filehandle buffern
muss? Und trotzdem habe ich den alten Handle nach dem Block wieder?
Wegen local? Danke :) (Ich probiers gleich mal aus.. :)
Mehr Informationen über die Mailingliste linux-l