Ha! flock, mein Lieblingsbefehl nachdem ich mal 2 Tage lang versucht habe rauszufinden ob er auch auf Win2K funktioniert... wenn er auf Win2K und UNIX gleich funktioniert dann ist dein Fehler:
open(COUNTER, "<../html/count.txt");
flock(COUNTER, 2);
$result = open(TESTFILE, ">../html/count.txt");
flock(TESTFILE,2); ### HIER!!!!
close(TESTFILE);
print $result;
close(COUNTER);
Ein open prueft nicht, ob eine Datei geflockt ist. Jedem open MUSS ein flock folgen. Da haelt das script dann an und wartet bis das vorherige flock aufgehoben wurde (durch flock(HANDLE,8) oder close).
In deinem Beispiel wird die geflockte Datei also korrekt geoeffnet, und da dem open kein flock folgt auch wieder geschlossen. Daher das resultat 1.
Wenn dem zweiten open ein flock folgen wuerde, haelt das script an, bis der erste prozess die datei wieder unflockt, in dem Bespiel passiert das aber nicht. Keine ahnung ob flock einen eingebauten timeout hat oder ob das script dann einfach haengen bleibt.
...wie gesagt, so laeufts auf Win2K...
:o)