Struppi: cgi mit exit; beenden-konzequenz?

Beitrag lesen

hallo struppi,

Keine.
Dateien werden automatisch geschlossen.
exit ist aber wohl eher für nicht-CGI Anwendungen gedacht um einen Fehlercode zurück zu geben.

Also besser vermeiden und eine saubere Programmstruktur befolgen.

ok,aber in den meisten cgi's sieht man dieses exit irgendwo.
Also ist exit nicht unbedingt notwendig,wenn im cgi 100% einen true wert gefunden wird?

Da widerrum kapier ich nicht ganz ;-)

exit ist einfach unsauber wenn man einfach nur ein Programm beenden will.
Wie gesagt es sollte für den Fehlerfall verwendet werden.

Oder wäre allenfalls "EOF" am Schluss für das richtige beenden eines cgi's zuständig?

Nicht unbedingt.

Das mit "return" kapier ich nähmlich nicht ganz.

Wieso das du machst eine sub und kehrst zurück mit return und das an jeder Stelle.

#!/usr/bin/perl -w

if(main() != 0)
{
   print "Es trat ein Fehler auf!";
}
else
{
   print "Alles ok!";
}

sub main
{
    if(alles_ok() == 0) return 0;
    #es trat ein fehler auf
    return 1;
}

sub alles_ok
{
   # prüfe Werte und gib bei Erfolg 0 zurück.
   return 0;
}

So in etwa, da brauchste kein exit. Zumal ion CGI programen exit gefährlich sein kann, da du dann immer sicher sein musst, das bereist ein Header ausgegeben wurde.

Struppi.