open (DATEI, $datei); /-> öffne Datei
open DATEI, $datei || die "Kann $datei nicht zum lesen öffnen, weil: $!";
open DATEI, '<' , $datei or die ".....";
perldoc perlop (!), deine Variante ist tasächlich fehlerhaft.
Mit dem Rest hast du völlig Recht.