http://qs321.pair.com?node_id=529512


in reply to Seeking help with CGI::Application, please.

How are you calling the cgi script? from a web page, I assume? you are probably setting the parameter "rm" as "start" in that page? that runmode is not defined.
  • Comment on Re: Seeking help with CGI::Application, please.

Replies are listed 'Best First'.
Re^2: Seeking help with CGI::Application, please.
by hesco (Deacon) on Feb 11, 2006 at 02:00 UTC
    Thanks, but no. I'm invoking this application from a browser pointed at a file reading:

    #!/usr/bin/perl -wT use lib(qw{/home/hesco/sandbox/DistroPrsRls/lib}); use DistroPrsRls; BEGIN { print STDERR "\@INC includes: \n", join("\n", @INC), "\n"; } my $dpr = DistroPrsRls->new(); $dpr->run(); exit; 1;
    I'm not sure where this 'start' value is coming from.

    -- Hugh

      I'm not sure where this 'start' value is coming from.

      'start' is the default runmode (or 'start mode') that is used if no runmode parameter is provided in the request object. However, in your setup method, you have set the start_mode to 'mode1', so in the absense of a runmode parameter, it should load the 'mode1' runmode as the default.

      So somehow your 'setup' method is not being executed correctly.

      Wouldn't the mode value come from CGI then? Make sure you set a default run mode or the 'rm' parameter is present in the request. There should be detailed instructions in the CGI::Application perldoc. Wish you luck!

      Here's link to a tutorial that might help. Although, from a quick glance at your code, you seem to have done things right. Still, may be worth checking over. One immediate suggestion might be to try setting run mode parameter and default value after the code which defines all run modes:
      sub setup { 
        my $self = shift; 
        $self->run_modes( 
          'mode1' => 'Login', 
          'mode2' => 'DPR_Dashboard', 
          'mode3' => 'EnterPrsRls', 
          'mode4' => 'ApprovePrsRls', 
          'mode5' => 'ChooseLists', 
          'mode6' => 'ScheduleDistro', 
          'mode7' => 'AuthorizeDistro', 
          'mode8' => 'ReviewJobs' ); 
      
          $self->start_mode('mode1'); 
          $self->mode_param('rm'); 
      
        return 1; 
      }
      


      _____________________
      "We've all heard that a million monkeys banging on a million typewriters will eventually reproduce
      the entire works of Shakespeare. Now, thanks to the Internet, we know this is not true."

      Robert Wilensky, University of California