Hi,
open(FH, $lang."\".$file) or die "Konnte
^^
Was bedeutet der doppelte Backslash?
Der erste maskiert den zweiten, welcher den dateinamen vom ordnernamen trennt (in der pfadangabe).
Dir ist bewusst, dass Perl auch unter Windows den Slash als Verzeichnistrenner nutzt? Ferner solltest Du Dich damit anfreunden, dass Doublequotes nur dann Sinn machen, wenn Du in ihnen Variablen interpolieren möchtest - andernfalls sind Singlequotes effizienter. Dein '"Konnte Datei /".$lang."/".$file." nicht öffnen.\n"' sollte '"Konnte Datei /$lang/$file nicht öffnen.\n"' geschrieben werden.
Schau Dir den Teil der Datei auch mal mit einem Hexadezimaleditor an. Manchmal schleichen sich irgendwelche Whitespaces ein, die man (naturgemäß) nicht sieht, die einem aber tüchtig das Leben versauen. Das führt dann oft zum "als ich es Zeichen für Zeichen abgetippt hatte, funktionierte es plötzlich"-Effekt.
Cheatah