#!/usr/bin/perl -w
use strict;
print "Content-type: text/plain\n\n";
my $counter = 0;
for (1..5) {
increment_counter( );
}
sub increment_counter {
$counter++;
print "Counter is equal to $counter !\n";
}
When issuing a request to /perl/counter.pl or a
similar script, we would expect to see the following output:
Counter is equal to 1 !
Counter is equal to 2 !
Counter is equal to 3 !
Counter is equal to 4 !
Counter is equal to 5 !
And in fact that's what we see when we execute this
script for the first time. But let's reload it a few
times.... After a few reloads, the counter suddenly stops counting
from 1. As we continue to reload, we see that it keeps on growing,
but not steadily, starting almost randomly at 10, 10, 10, 15, 20...,
which makes no sense at all!
Counter is equal to 6 !
Counter is equal to 7 !
Counter is equal to 8 !
Counter is equal to 9 !
Counter is equal to 10 !
We saw two anomalies in this very simple script:
The reason for this strange behavior is that although
$counter is incremented with each request, it is
never reset to 0, even though we have this line:
my $counter = 0;
Doesn't this work under mod_perl?