in reply to How to debug CGI scripts?

I second (or third ..) the commandline debugging. You can add parameters to a script using CGI like this:
# 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)); }