% perl mycgi.pl var1=val var2=val
If you're not using CGI.pm, this is yet another reason
why you should be. :)
Update: As jeffa pointed out, when
using the interactive mode you should enter your
key-value pairs, followed by a CNTL-D when you're
done. | [reply] [d/l] |
And the latest versions of CGI.pm requires you to import the '-debug' flag to turn that feature on:
use CGI qw(-debug);
And I often just cut and paste a query string from the
browser to a file so I can just do something like
this from the command line (and have all the parameters saved so I can edit them at will):my_cgi_script.cgi <query.in
| [reply] [d/l] [select] |
| [reply] |
Here is the code I am using and it doesn't seem to be working.
#!d:/perl/bin/perl.exe -w
require "authenticate.pl";
#If not authorized then don't continue
exit if (! &AdminLogin);
#If authorized then build the appropriate page.
$perl = sub {
qx/perl createHTML.pl htmt=admin.htmt xml=webboard.xml xsl=listbox.x
+sl/;
};
print "Content-Type: text/html \n\n";
print "OUTPUT: " . &$perl;
It is running the createHTML.pl cgi script but it that script doesn't appear to be getting the query string to be parsed. It still recieves everything in @ARGV? adn &ReadParse; isn't parsing it. | [reply] [d/l] |
Either build createHTML.pl as a normal script accepting normal arguments, or use CGI.pm and use it as a CGI script. Be advised that you'll probably end up printing two sets of CGI headers doing this, though (at least how your code is set up now). I have no idea what &ReadParse is (some cgi-lib.pl thing?), so I can't tell how it's attempting to parse your command line. I suspect CGI.pm will pick it up fine (and if not, try adding the -debug option to the 'use' option list for CGI).
If you're going to be doing a lot of this type of thing, you might be better off turning createHTML.pl into a module, and 'use'ing that module in this script, and a new, simplified createHTML.pl script. That would let you avoid having to spawn off new Perl scripts to do additional processing.
| [reply] |
Does createHTML import the -debug flag?:
use CGI qw(-debug);
# or something like:
use CGI qw(:standard -debug);
| [reply] [d/l] |