#!/usr/bin/perl # Set Variables $counterfile = 'counter.txt'; # Get the input $link = $ENV{'DOCUMENT_URI'}; # Begin Code open(FILE, $counterfile) || die Can't locate counter file $!; @DATA = ; close(FILE); $SIZE = @DATA; if ($SIZE eq 0) { $counter = '?'; &LocateLink; } foreach $entry (@DATA) { ($counter, $baselink) = split(/'/, $entry); chomp($baselink); &UpdateStats if ($baselink eq $link); } # Add new link to database file open(FILE, ">>$counterfile") || die Can't locate database file $!; print FILE "1'$link\n"; # First time close(FILE); $counter = '1'; &LocateLink; # Increase through-link counter sub UpdateStats { $counter++; $entry = "$counter'$baselink\n"; @DATA = sort {($b =~ /(\d+)/)[0] <=> ($a =~ /(\d+)/)[0]} @DATA; $tmpfilename = "$counterfile\.$link"; $tmpfilename =~s/\///g; open(FILE, ">$tmpfilename") || die Can't locate database file $!; print FILE @DATA; close(FILE); rename("$tmpfilename", $counterfile); &LocateLink; } sub LocateLink { print "Content-Type: text/html\n\n"; print $counter; exit; }