Halihallo Sven
open (FH, "< forum/IDforum.txt");
$kennung = <FH>; chomp $kennung;
close FH;
das müsste so aussehen:
open(FH, '<./forum/IDforum.txt') or die 'cannot open IDforum.txt';
($kennung) = <FH>; chomp $kennung;
close FH;
Beachte: <FH> gibt ein Array zurück, nicht ein String. Benutzt du <FH> skalar, wird die _Länge_ des Arrays (also Anzahl Zeilen in der Datei) zurückgeliefert.
Leider falsch!
Nur weil <FH> im Array-Kontext ein Array zurückliefert, muß es im Scalar-Kontext nicht die Länge des Arrays liefern. Es liefert die nächste Zeile zurück, oder undef bei Fehlern wie EOF.
Oder, als RTFM formuliert:
perldoc perlop
Unter I/O Operators findet sich folgende Erklärung:
In scalar context, evaluating a filehandle in angle brackets yields the next line from that file (the newline, if any, included), or undef at end-of-file or on error. When $/ is set to undef (sometimes known as file-slurp mode) and the file is empty, it returns '' the first time, followed by undef subsequently.
Alexander
Viele Grüsse
Philipp