#!/usr/bin/perl
# Michael Tartaglia
# counter.cgi
# This program was originally used as an embedded file,
# however I had to convert it to a regular CGI
# file when the server software at Fordham
# was switched
#
# READ THE COUNTER's CONTENTS AT counter.txt
package counter;
use CGI ':standard';
require template;
my $fileName = "counter.txt";
my $fS = "";
my $fE = "";
my ($num, $date) = &getInfo();
# SHOW FORMATTED CONTENTS OF COUNTER
template::startHTML("Program #10","A Counter");
print &showNum();
template::endHTML();
sub showNum
{
my $d = ($date ne "" ? "$fS Last visit: $fE" . $date . "
" : "");
my $phrase = "$fS This is visit number $fE $num$fS.$fE
$d";
saveNum();
return "$phrase";
}
# READS AND RETURNS CONTENTS OF FILE
sub getInfo()
{
open(C, "<$fileName");
flock(C, 1);
my @rows = ;
close(C);
return (++$rows[0],$rows[1]);
}
# OVERWRITES NUMBER AND DATE ON FILE
sub saveNum
{
$date = scalar(localtime());
open(C, ">$fileName");
flock(C, 2);
print C "$num\n$date\n";
close(C);
}