in reply to CGI and Perl

If you're using CGI.pm it has a special interactive mode that allows you to run Perl scripts from the command line. Just run the script w/o args and you'll be dropped into that mode.

You can also give it the args on the command line.

% 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.

Replies are listed 'Best First'.
Re: Re: CGI and Perl
by runrig (Abbot) on Dec 22, 2000 at 03:35 UTC
    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
Re: Re: CGI and Perl
by davorg (Chancellor) on Dec 22, 2000 at 13:35 UTC

    If you're running on Windows - that's a CTRL-Z.

    --
    <http://www.dave.org.uk>

    "Perl makes the fun jobs fun
    and the boring jobs bearable" - me

Re: Re: CGI and Perl
by Gibble (Novice) on Dec 22, 2000 at 21:23 UTC
    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.
      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.

      Does createHTML import the -debug flag?:
      use CGI qw(-debug); # or something like: use CGI qw(:standard -debug);