You might want to take a look at
File::CounterFile
by Gisle Aas which keeps file-based counters like yours.
It uses file locking to handle multiple processes trying to
modify the file at the same time, which will be an issue for
you because you could have multiple simultaneous HTTP requests
going on.
It's very easy to use. This will open the file, increment the
value, and return you the updated value:
use File::CounterFile;
$c = new File::CounterFile $data_file, $initial_value;
$raw_data = $c->inc;