#!/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); }