ähm... von Perl versteh ich ncht allzu viel, hatte aber vor kurzem ein ähnliches Problem in PHP.
also, in der 2ten Zeile liest er doch die vorher geöffnete Datei aus, oder?
also in >>flock(COUNTER, 2);
dabei steht die 2 doch garantiert wie in PHP oder C für die anzahl der Bytes also Zeichen, die gelesen werden sollen. Versuchs mal mit 3.
Wenns daran liegt:
gibt's in Perl eine Funktion zum Finden der Dateigröße? Dann kannst du vielleicht diese Zahl einfach dort einsetzen, das sieht dann mega-professionell aus.