I second (or third ..) the commandline debugging. You can add parameters to a script using
CGI like this:
# cgiscript.pl arg1=value1 arg2=value2 arg3=value3
A nice trick I've learned is that you can use the -t test operator (tests if stdin is a terminal) to do command line debugging that won't show up if your script is ran on a webserver, something like:
#!/usr/bin/env perl
use strict;
use warnings;
use CGI qw(param header);
$|=1;
my $cgi = new CGI;
my @params = $cgi->param();
if (-t) {
print "cmdline mode!\n";
} else {
print $cgi->header();
}
my $fmt;
if (-t) {
$fmt = "%s:%s\n";
} else {
$fmt = "%s:%s<br/>\n";
}
foreach my $p (@params) {
# normally you'd make sure stuff is untainted here
# but this is for demo purposes so I left it out
printf($fmt, $p, $cgi->param($p));
}