Halihallo Alexander
Moin Moin !
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!
[...]
Öm. Ich entschuldige mich; hast recht.
Aber vielleicht ist es anders (also im array-kontext) dennoch sinnvoll, denn dann gewöhnt man sich das gleich an (wie ich) und staunt dann an anderen Orten nicht. (soll keine Ausrede sein, ich gestehe den Fehler voll und ganz ein)
Das ist guuuuuuuuut für mein Ego ! ;-)
Statt "open FH", "<FH>" und Co. kann man natürlich gleich sauber und ordentlich IO::File, IO::Handle und Co. benutzen.
Nochmal RTFM: perldoc IO::Handle
$io->getline
This works like <$io> described in I/O Operators in the perlop manpage except that it's more readable and can be safely called in an array context but still returns just one line.
$io->getlines
This works like <$io> when called in an array context to read all the remaining lines in a file, except that it's more readable. It will also croak() if accidentally called in a scalar context.
Aber für schnelle Hacks ist IO::Handle definitiv etwas zu viel Tipperei.
Alexander