Wenn Du die Datei sowieso oeffnen moechtest, kannst Du auch open zum Ueberpruefen der Existenz nehmen:
while (1) {
my $fh;
my $dateiname = eingabe();
if (open $fh, '<', $dateiname) {
last;
} else {
warn "Kann $dateiname nicht oeffnen: $!\n";
}
}
Hierbei wird solange Eingabe gefordert, bis die Datei geoeffnet werden kann. Fehler beim Oeffnen koennen natuerlich auch an anderen Sachen als Nichtexistenz liegen. Das koennte man mit dem Modul Errno ueberpruefen, wenn man will.
Ich versuche eigentlich immer solche Sachen wie "erst -e, dann open" zu vermeiden, weil sich zwischen den beiden Calls noch etwas aendern koennte (Stichwort Race Condition).
Ich habe oben auch gleich ein
lexikalisches Dateihandle benutzt, das wird allgemein als schoener anerkannt.