Hallo Sven,
open (FH, "< forum/IDforum.txt");
besser: open (FH, "< forum/IDforum.txt") || die "can't open file\n";
Diese Zahl wird anschließend an einen Dateinamen gehängt, um diesen zu vervollständigen:
open (FHa, "< forum/F" . $kennung) or $loaderror=1;
Die Datei wird nur geöffnet, wenn ich die Zahl, die in der Datei gespeichert war, der Variable $kennung direkt zuweise und den Wert nicht über $kennung=<FH> einlese.
Du solltest immer alle möglichen Fehler abfangen. Dein konkretes Problem ist vielleicht die Datei forum/IDforum.txt: Es ist möglich das unerwartete Effekte auftreten, wenn die Datei nicht mit einem Zeilenumbruch (\n) endet. Ansonsten sieht alles logisch aus.
Grüße Peter