#!perl -w use strict; use CGI qw( :standard ); use CGI::Carp qw( fatalsToBrowser ); $|=1; my $count = 0; if( -e 'cnt.tmp') and not param('Start Over') ) { open COUNT, 'cnt.tmp' or die "Failed to open cnt.tmp, $!\n"; while() { if( /^\s*(\d+)\s*$/ ) { $count = $1; last } } close COUNT or die "Failed to close cnt.tmp, $!\n"; } if (param('Again') or param('Start Over') { open COUNT, '>cnt.tmp' or die "Failed to open >cnt.tmp, $!\n"; print COUNT ++$count; close COUNT or die "Failed to close >cnt.tmp, $!\n"; print "Location: this.cgi\n\n"; } else { print header, start_html('Simple Counter'), "\n"; print start_form(), "Count equals $count", br(), "\n", submit( -name=>"Again" -value=>"Again"), submit( -name=>"Start Over", -value=>"Start Over" ), end_form(), "\n"; print end_html(); }