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


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

Guess I didn't step away enough to have it make sense to anyone else....

That said, here's some code:

sub cgiapp_prerun { my $self = shift; my $dbh = $self->{DBH} = $self->param('DBH'); ### let's check for storage; my $previousClass = $self->query->param('this'); my $className = "DataClasses::${previousClass}"; if ( $className->SUPER::can( 'new' ) and $className->SUPER::can( 'store') ) { my $object = $className->new( DBH => $dbh, REQUEST => $request ); ## the needStorage method allows us to ## have multiple "screens" using the same class ## where not all of them store in the DB $object->store() if $object->needStorage(); } } }
and the store() method ...
sub store { my ( $self, %params )_ = @_; ### if insert ... $self->query->param( -name => 'whatever', -value => '123'); $self->param( 'whatever', '123' ); return 1; }
both methods of stashing the value until the runmode is executed failed. as i've understood the calling stack:

CGI::App->new() -> prerun -> setup -> "runmode" -> teardown

so i don't see how something set in one mode wouldn't carry into another, because it's the same "run cycle".