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


in reply to Re^2: CGI::Application, the cgiapp_prerun mode, and CGI object interaction
in thread CGI::Application, the cgiapp_prerun mode, and CGI object interaction

My recommendation would be to start trimming your code down until things start working. The way you are calling $self->param(...) should work fine, and that value should be recoverable from within your runmode.

I'll ask again, are you sure that code is being executed? Try the following and you will see that your concept should work fine. Just save all of it into one file, and run it from the command line:

#!/usr/bin/perl { package TestApp; use base qw(CGI::Application); use CGI qw(:standard); sub setup { my $self = shift; $self->run_modes([qw(start)]); } sub cgiapp_prerun { my $self = shift; print STDERR "calling cgiapp_prerun\n"; $self->param( test => 123 ); } sub start { my $self = shift; my $test = $self->param('test'); print STDERR "test: $test\n"; return qq{<html><body><h1>test: $test</h1></body></html>}; } } TestApp->new->run;

I have one more question for you. Do you have the following line in your code somewhere?

use CGI qw(:standard);

If so, then remove it and things will most likely start to work for you.