Michael: Bleiben Variable erhalten?

Hallo zusammen,

ich mache gerade meine ersten Erfahrungen mit Perl/CGI und habe ein paar Fragen?
1.) Klar, ordentlich ist es, wenn Dateien per Programm geschlossen werden. Wenn nicht, werden alle Dateien nach Ausführung von exis(0) automatisch geschlossen und die Resourcen freigegeben? Was passiert mit den offenen Dateien, wenn sich das Programm selbst wieder aufruft?

2.) Bleiben die Variablen erhalten, wenn sich das Programm wieder selbst aufruft, oder sind my-Definitionen und die Inhalte verloren?

Vielen Dank schon mal für eure Unterstützung!

  1. 1.) Klar, ordentlich ist es, wenn Dateien per Programm geschlossen werden. Wenn nicht, werden alle Dateien nach Ausführung von exis(0) automatisch geschlossen und die Resourcen freigegeben? Was passiert mit den offenen Dateien, wenn sich das Programm selbst wieder aufruft?

    welche offenen Dateien?
    Wenn das Porgramm beendet wird werden alle offenen Dateihandle geschlossen.

    2.) Bleiben die Variablen erhalten, wenn sich das Programm wieder selbst aufruft, oder sind my-Definitionen und die Inhalte verloren?

    Natürlich, nach dem beenden eines Programms sind alle Daten die du nicht gespeichert hast weg.

    Struppi.

    --
    Javascript ist toll (Perl auch!)
  2. Hell-O!

    1.) Klar, ordentlich ist es, wenn Dateien per Programm geschlossen werden. Wenn nicht, werden alle Dateien nach Ausführung von exis(0) automatisch geschlossen und die Resourcen freigegeben?

    Es gibt zwei Möglichkeiten, Dateien zu schließen: explizit durch Aufruf von close FH oder implizit. Letzteres geschieht, wenn du eine bereits offene Datei erneut öffnest oder wenn das Script beendet wird. Allerdings dient das Ganze nur der Vereinfachung, denn du hast dann keinerlei Kontrolle darüber, ob das Schließen erfolgreich war. Besser so:

    close FH or die "Can't close file: $!";

    Besonderheiten des impliziten Schließens nennt dir auch perldoc -f close.

    Was passiert mit den offenen Dateien, wenn sich das Programm selbst wieder aufruft?

    Nichts, denn es gibt keine offenen Dateien.

    2.) Bleiben die Variablen erhalten, wenn sich das Programm wieder selbst aufruft, oder sind my-Definitionen und die Inhalte verloren?

    Letzteres.

    Siechfred

    --
    Ich bin strenggenommen auch nur interessierter Laie. (molily)
    Zitat des Tages || Falle Aufteilungsbescheid || RT 221 Erfurt-Altstadt i.V.