Struppi: Überprüfen ob es geklappt hat (open)

Beitrag lesen

Hi,
Ich habe gehört das die Funktion open,true zurück gibt wenn die Datei geöffnet werden konnte.
Ich habe z.B.:
open(DATEI1,"<$name") || err("Konnte die Datei nicht oeffnen!");

Das sollte gehen, wenn es die Funktion err() gibt. Besser wäre es aber noch "$!" mit auszugeben, weil in $! eine Fehlermeldung steht.

Wenn ich jetzt folgendes Versuche, dann geht das nicht.
if(DATEI1 eq 'true'){

Warum sollte ein Dateihandle gleich dem String 'true' sein?

blabla
}elsif(Datei1 eq 'undefined'){

oder die nicht benutzte symbolische Referenz "Datei1" auf einmal den String 'undefined' enthalten?

Wie macht man es richtig?

Indem man sich vorher informiert, wie die richtige Syntax der Sprache ist, die man benutzen möchte.

ein Möglichkeit, das zu tun was du möchtest wäre in etwa so:

open DATEI1, "<$name" || die "Fehler! Konnte $name nicht öffnen, weil: $!";
....
while(<DATEI1>)
{
    print
}
close DATEI1;

Struppi.