open(DATEI, "</dir/deine.datei") || die "Datei nicht gefunden";
Das muss nicht scheitern, weil die Datei nicht gefunden wird. Der Grund für das scheitern des öffnen's steht in $!
Ansonsten ist deine Methode nicht sonderlich performant. Ein komplette Datei neu schreiben kann dauern.
Struppi.