Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

CGI::Application::Loop

by PodMaster (Abbot)
on Sep 24, 2003 at 22:51 UTC ( #294034=note: print w/ replies, xml ) Need Help??


in reply to CGI::Application and Session problem

It seems that sub Setup is running every time the app is called and I don't think that is right?
That's what happens, and that's what's supposed to happen (every time you construct a new CGI::Application object, sub new calls setup). Try this from the commandline (or just run perldoc on it)
package CGI::Application::Loop; use base qw[ CGI::Application ]; 1; package main; unless( caller() ) { use Devel::TraceCalls { Package => "CGI::Application" }; my $app = CGI::Application::Loop->new(); print STDERR "\nTRACE: CONSTRUCTED**(\n"; $app->run; print STDERR "\nTRACE: RUNNED**(\n"; $app->run; } __END__ perl cgi.application.loop.pl >NUL 2>twoy perl -lne" print qq[=head3 $1\n\n] if m{^TRACE:[^\w]+(.*?)\(} " twoy > +>cgi.application.loop.pl =head1 What is the application loop? Well, first you create an object of your CGI::Application subclass (or + CGI::Application). You use L<I<C<new>>|/CGI::Application::new> for this. After you have created an instance of your application ( C<my $app = CGI::Application-E<gt>new> ), you run it (L<C<$app-E<gt>run>|/CGI::Application::run>), and that's it (L<I<C<run>>|/CGI::Application::run> has a loop of its own). At that point your CGI::Application object should go out of scope (or be undef'ed) and subsequently be DESTROY'ed. =head2 CGI::Application::new The constructor. It sets defaults for the following: =over 4 =item * C<$self-E<gt>header_type> =item * C<$self-E<gt>mode_param> =item * C<$self-E<gt>start_mode> =back It then calls L<C<$self-E<gt>cgiapp_init>|"CGI::Application::cgiapp_init">, and L<C<$self-E<gt>setup>|"CGI::Application::setup">. =head3 CGI::Application::cgiapp_init This one I<you> must provide. It's a good place to initialize a database handle. =head3 CGI::Application::setup This one also I<you> must provide, and it should set C<$self-E<gt>start_mode>, and C<$self-E<gt>run_modes> =head2 CGI::Application::run The C<run> method is the I<meat'n'potatoes> of CGI::Application. It fetches the L<query|/CGI::Application::query> object. It fetches the mode_param, and the current mode, and if there is no current run mode specified, it fetches the start_mode. It then invokes L<cgiapp_prerun|/CGI::Application::cgiapp_prerun>. It then invokes the actual run mode (whatever it may be, start_mode or + otherwise). It then I<builds> the headers using C<header_type()> and C<header_prop +s()>. It then sends "I<output to browser (unless we're in serious debug mode +!)>". And it finally calls L<C<$self-E<gt>teardown()>|/CGI::Application::tea +rdown>. =head3 CGI::Application::query Returns the query object ;)( usually a C<CGI.pm> object, but you can just as easily use a completely B<compatible> C<CGI::Simple> object). If one doesn't exist, one will be created using C<$self-E<gt>cgiapp_get_query>. Creates a CGI.pm object on the fly. #=head3 CGI::Application::mode_param #=head3 CGI::Application::start_mode =head3 CGI::Application::cgiapp_prerun This one you must provide. It is a good place to fetch a user object from someplace. =head3 CGI::Application::teardown This is a good place to destroy your database handle, unless you're running in a persistent environment (aka unless C<$ENV{MOD_PERL +}>). Since it is invoked upon each I<L<run|/CGI::Application::run>>, it is a good place to delete I<user> objects and such. =cut
Here is the raw trace (what you would see if you ran this code)
TRACE: CGI::Application::new( 'CGI::Application::Loop' ) TRACE: +-CGI::Application::header_type( bless( {}, 'CGI::Application:: +Loop' ), 'header' ) TRACE: +-CGI::Application::mode_param( bless( { : | | __HEADER_TYPE => 'header' : | | }, 'CGI::Application::Loop' ), 'rm' ) TRACE: +-CGI::Application::start_mode( bless( { : | | __HEADER_TYPE => 'header', : | | __MODE_PARAM => 'rm' : | | }, 'CGI::Application::Loop' ), 'start' ) TRACE: +-CGI::Application::_cap_hash( bless( { : | | __START_MODE => 'start', : | | __HEADER_TYPE => 'header', : | | __MODE_PARAM => 'rm' : | | }, 'CGI::Application::Loop' ), {} ) TRACE: +-CGI::Application::cgiapp_init( bless( { : | | __START_MODE => 'start', : | | __PRERUN_MODE_LOCKED => 1, : | | __HEADER_TYPE => 'header', : | | __MODE_PARAM => 'rm' : | | }, 'CGI::Application::Loop' ) ) TRACE: +-CGI::Application::setup( bless( { : | | __START_MODE => 'start', : | | __PRERUN_MODE_LOCKED => 1, : | | __HEADER_TYPE => 'header', : | | __MODE_PARAM => 'rm' : | | }, 'CGI::Application::Loop' ) ) TRACE: | +-CGI::Application::start_mode( bless( { : | ! | __START_MODE => 'start', : | ! | __PRERUN_MODE_LOCKED => 1, : | ! | __HEADER_TYPE => 'header', : | ! | __MODE_PARAM => 'rm' : | ! | }, 'CGI::Application::Loop' ), 'start' ) TRACE: | +-CGI::Application::run_modes( bless( { : | ! | __START_MODE => 'start', : | ! | __PRERUN_MODE_LOCKED => 1, : | ! | __HEADER_TYPE => 'header', : | ! | __MODE_PARAM => 'rm' : | ! | }, 'CGI::Application::Loop' ), 'start', 'dump_html' ) TRACE: CONSTRUCTED**( TRACE: CGI::Application::run( bless( { : | __START_MODE => 'start', : | __PRERUN_MODE_LOCKED => 1, : | __RUN_MODES => { : | start => 'dump_html' : | }, : | __HEADER_TYPE => 'header', : | __MODE_PARAM => 'rm' : | }, 'CGI::Application::Loop' ) ) TRACE: +-CGI::Application::query( bless( { : | | __START_MODE => 'start', : | | __PRERUN_MODE_LOCKED => 1, : | | __RUN_MODES => { : | | start => 'dump_html' : | | }, : | | __HEADER_TYPE => 'header', : | | __MODE_PARAM => 'rm' : | | }, 'CGI::Application::Loop' ) ) TRACE: | +-CGI::Application::cgiapp_get_query( bless( { : | ! | __START_MODE => 'start', : | ! | __PRERUN_MODE_LOCKED => 1, : | ! | __RUN_MODES => { : | ! | start => 'dump_html' : | ! | }, : | ! | __HEADER_TYPE => 'header', : | ! | __MODE_PARAM => 'rm' : | ! | }, 'CGI::Application::Loop' ) ) TRACE: +-CGI::Application::mode_param( bless( { : | | __START_MODE => 'start', : | | __PRERUN_MODE_LOCKED => 1, : | | __QUERY_OBJ => bless( { : | | '.charset' => 'ISO-8859-1', : | | '.parameters' => [], : | | '.fieldnames' => {}, : | | escape => 1 : | | }, 'CGI' ), : | | __RUN_MODES => { : | | start => 'dump_html' : | | }, : | | __HEADER_TYPE => 'header', : | | __MODE_PARAM => 'rm' : | | }, 'CGI::Application::Loop' ) ) TRACE: +-CGI::Application::start_mode( bless( { : | | __START_MODE => 'start', : | | __PRERUN_MODE_LOCKED => 1, : | | __QUERY_OBJ => bless( { : | | '.charset' => 'ISO-8859-1', : | | '.parameters' => [], : | | '.fieldnames' => {}, : | | escape => 1 : | | }, 'CGI' ), : | | __RUN_MODES => { : | | start => 'dump_html' : | | }, : | | __HEADER_TYPE => 'header', : | | __MODE_PARAM => 'rm' : | | }, 'CGI::Application::Loop' ) ) TRACE: +-CGI::Application::cgiapp_prerun( bless( { : | | __START_MODE => 'start', : | | __QUERY_OBJ => bless( { : | | '.charset' => 'ISO-8859-1', : | | '.parameters' => [], : | | '.fieldnames' => {}, : | | escape => 1 : | | }, 'CGI' ), : | | __RUN_MODES => { : | | start => 'dump_html' : | | }, : | | __HEADER_TYPE => 'header', : | | __CURRENT_RUNMODE => 'start', : | | __MODE_PARAM => 'rm' : | | }, 'CGI::Application::Loop' ), 'start' ) TRACE: +-CGI::Application::prerun_mode( bless( { : | | __START_MODE => 'start', : | | __PRERUN_MODE_LOCKED => 1, : | | __QUERY_OBJ => bless( { : | | '.charset' => 'ISO-8859-1', : | | '.parameters' => [], : | | '.fieldnames' => {}, : | | escape => 1 : | | }, 'CGI' ), : | | __RUN_MODES => { : | | start => 'dump_html' : | | }, : | | __HEADER_TYPE => 'header', : | | __CURRENT_RUNMODE => 'start', : | | __MODE_PARAM => 'rm' : | | }, 'CGI::Application::Loop' ) ) TRACE: +-CGI::Application::run_modes( bless( { : | | __PRERUN_MODE => '', : | | __START_MODE => 'start', : | | __PRERUN_MODE_LOCKED => 1, : | | __QUERY_OBJ => bless( { : | | '.charset' => 'ISO-8859-1', : | | '.parameters' => [], : | | '.fieldnames' => {}, : | | escape => 1 : | | }, 'CGI' ), : | | __RUN_MODES => { : | | start => 'dump_html' : | | }, : | | __HEADER_TYPE => 'header', : | | __CURRENT_RUNMODE => 'start', : | | __MODE_PARAM => 'rm' : | | }, 'CGI::Application::Loop' ) ) TRACE: +-CGI::Application::dump_html( bless( { : | | __PRERUN_MODE => '', : | | __START_MODE => 'start', : | | __PRERUN_MODE_LOCKED => 1, : | | __QUERY_OBJ => bless( { : | | '.charset' => 'ISO-8859-1', : | | '.parameters' => [], : | | '.fieldnames' => {}, : | | escape => 1 : | | }, 'CGI' ), : | | __RUN_MODES => { : | | start => 'dump_html' : | | }, : | | __HEADER_TYPE => 'header', : | | __CURRENT_RUNMODE => 'start', : | | __MODE_PARAM => 'rm' : | | }, 'CGI::Application::Loop' ) ) TRACE: | +-CGI::Application::get_current_runmode( bless( { : | ! | __PRERUN_MODE => '', : | ! | __START_MODE => 'start', : | ! | __PRERUN_MODE_LOCKED => 1, : | ! | __QUERY_OBJ => bless( { : | ! | '.charset' => 'ISO-8859-1', : | ! | '.parameters' => [], : | ! | '.fieldnames' => {}, : | ! | escape => 1 : | ! | }, 'CGI' ), : | ! | __RUN_MODES => { : | ! | start => 'dump_html' : | ! | }, : | ! | __HEADER_TYPE => 'header', : | ! | __CURRENT_RUNMODE => 'start', : | ! | __MODE_PARAM => 'rm' : | ! | }, 'CGI::Application::Loop' ) ) TRACE: | +-CGI::Application::query( bless( { : | ! | __PRERUN_MODE => '', : | ! | __START_MODE => 'start', : | ! | __PRERUN_MODE_LOCKED => 1, : | ! | __QUERY_OBJ => bless( { : | ! | '.charset' => 'ISO-8859-1', : | ! | '.parameters' => [], : | ! | '.fieldnames' => {}, : | ! | escape => 1 : | ! | }, 'CGI' ), : | ! | __RUN_MODES => { : | ! | start => 'dump_html' : | ! | }, : | ! | __HEADER_TYPE => 'header', : | ! | __CURRENT_RUNMODE => 'start', : | ! | __MODE_PARAM => 'rm' : | ! | }, 'CGI::Application::Loop' ) ) TRACE: +-CGI::Application::cgiapp_postrun( bless( { : | | __PRERUN_MODE => '', : | | __START_MODE => 'start', : | | __PRERUN_MODE_LOCKED => 1, : | | __QUERY_OBJ => bless( { : | | '.charset' => 'ISO-8859-1', : | | '.parameters' => [], : | | '.fieldnames' => {}, : | | escape => 1 : | | }, 'CGI' ), : | | __RUN_MODES => { : | | start => 'dump_html' : | | }, : | | __HEADER_TYPE => 'header', : | | __CURRENT_RUNMODE => 'start', : | | __MODE_PARAM => 'rm' : | | }, 'CGI::Application::Loop' ), \'<P> : | | Current Run-mode: \'<B>start</B>\'<BR> : | | <P> : | | Query Parameters:<BR> : | | <OL> : | | </OL> : | | <P> : | | Query Environment:<BR> : | | <OL> : | | <LI> HOMEDRIVE => \'<B>C:</B>\' : | | <LI> HOMEPATH => \'<B>\\</B>\' : | | <LI> TEMP => \'<B>C:\\DOCUME~1\\_\\LOCALS~1\\Temp</B>\' : | | <LI> TMP => \'<B>C:\\DOCUME~1\\_\\LOCALS~1\\Temp</B>\' : | | </OL> : | | ' ) TRACE: +-CGI::Application::_send_headers( bless( { : | | __PRERUN_MODE => '', : | | __START_MODE => 'start', : | | __PRERUN_MODE_LOCKED => 1, : | | __QUERY_OBJ => bless( { : | | '.charset' => 'ISO-8859-1', : | | '.parameters' => [], : | | '.fieldnames' => {}, : | | escape => 1 : | | }, 'CGI' ), : | | __RUN_MODES => { : | | start => 'dump_html' : | | }, : | | __HEADER_TYPE => 'header', : | | __CURRENT_RUNMODE => 'start', : | | __MODE_PARAM => 'rm' : | | }, 'CGI::Application::Loop' ) ) TRACE: | +-CGI::Application::query( bless( { : | ! | __PRERUN_MODE => '', : | ! | __START_MODE => 'start', : | ! | __PRERUN_MODE_LOCKED => 1, : | ! | __QUERY_OBJ => bless( { : | ! | '.charset' => 'ISO-8859-1', : | ! | '.parameters' => [], : | ! | '.fieldnames' => {}, : | ! | escape => 1 : | ! | }, 'CGI' ), : | ! | __RUN_MODES => { : | ! | start => 'dump_html' : | ! | }, : | ! | __HEADER_TYPE => 'header', : | ! | __CURRENT_RUNMODE => 'start', : | ! | __MODE_PARAM => 'rm' : | ! | }, 'CGI::Application::Loop' ) ) TRACE: | +-CGI::Application::header_type( bless( { : | ! | __PRERUN_MODE => '', : | ! | __START_MODE => 'start', : | ! | __PRERUN_MODE_LOCKED => 1, : | ! | __QUERY_OBJ => bless( { : | ! | '.charset' => 'ISO-8859-1', : | ! | '.parameters' => [], : | ! | '.fieldnames' => {}, : | ! | escape => 1 : | ! | }, 'CGI' ), : | ! | __RUN_MODES => { : | ! | start => 'dump_html' : | ! | }, : | ! | __HEADER_TYPE => 'header', : | ! | __CURRENT_RUNMODE => 'start', : | ! | __MODE_PARAM => 'rm' : | ! | }, 'CGI::Application::Loop' ) ) TRACE: | +-CGI::Application::header_props( bless( { : | ! | __PRERUN_MODE => '', : | ! | __START_MODE => 'start', : | ! | __PRERUN_MODE_LOCKED => 1, : | ! | __QUERY_OBJ => bless( { : | ! | '.charset' => 'ISO-8859-1', : | ! | '.parameters' => [], : | ! | '.fieldnames' => {}, : | ! | escape => 1 : | ! | }, 'CGI' ), : | ! | __RUN_MODES => { : | ! | start => 'dump_html' : | ! | }, : | ! | __HEADER_TYPE => 'header', : | ! | __CURRENT_RUNMODE => 'start', : | ! | __MODE_PARAM => 'rm' : | ! | }, 'CGI::Application::Loop' ) ) TRACE: +-CGI::Application::teardown( bless( { : | | __PRERUN_MODE => '', : | | __START_MODE => 'start', : | | __PRERUN_MODE_LOCKED => 1, : | | __QUERY_OBJ => bless( { : | | '.header_printed' => '1', : | | '.charset' => 'ISO-8859-1', : | | '.parameters' => [], : | | '.fieldnames' => {}, : | | escape => 1 : | | }, 'CGI' ), : | | __RUN_MODES => { : | | start => 'dump_html' : | | }, : | | __HEADER_PROPS => {}, : | | __HEADER_TYPE => 'header', : | | __CURRENT_RUNMODE => 'start', : | | __MODE_PARAM => 'rm' : | | }, 'CGI::Application::Loop' ) ) TRACE: RUNNED**( TRACE: CGI::Application::run( bless( { : | __PRERUN_MODE => '', : | __START_MODE => 'start', : | __PRERUN_MODE_LOCKED => 1, : | __QUERY_OBJ => bless( { : | '.header_printed' => '1', : | '.charset' => 'ISO-8859-1', : | '.parameters' => [], : | '.fieldnames' => {}, : | escape => 1 : | }, 'CGI' ), : | __RUN_MODES => { : | start => 'dump_html' : | }, : | __HEADER_PROPS => {}, : | __HEADER_TYPE => 'header', : | __CURRENT_RUNMODE => 'start', : | __MODE_PARAM => 'rm' : | }, 'CGI::Application::Loop' ) ) TRACE: +-CGI::Application::query( bless( { : | | __PRERUN_MODE => '', : | | __START_MODE => 'start', : | | __PRERUN_MODE_LOCKED => 1, : | | __QUERY_OBJ => bless( { : | | '.header_printed' => '1', : | | '.charset' => 'ISO-8859-1', : | | '.parameters' => [], : | | '.fieldnames' => {}, : | | escape => 1 : | | }, 'CGI' ), : | | __RUN_MODES => { : | | start => 'dump_html' : | | }, : | | __HEADER_PROPS => {}, : | | __HEADER_TYPE => 'header', : | | __CURRENT_RUNMODE => 'start', : | | __MODE_PARAM => 'rm' : | | }, 'CGI::Application::Loop' ) ) TRACE: +-CGI::Application::mode_param( bless( { : | | __PRERUN_MODE => '', : | | __START_MODE => 'start', : | | __PRERUN_MODE_LOCKED => 1, : | | __QUERY_OBJ => bless( { : | | '.header_printed' => '1', : | | '.charset' => 'ISO-8859-1', : | | '.parameters' => [], : | | '.fieldnames' => {}, : | | escape => 1 : | | }, 'CGI' ), : | | __RUN_MODES => { : | | start => 'dump_html' : | | }, : | | __HEADER_PROPS => {}, : | | __HEADER_TYPE => 'header', : | | __CURRENT_RUNMODE => 'start', : | | __MODE_PARAM => 'rm' : | | }, 'CGI::Application::Loop' ) ) TRACE: +-CGI::Application::start_mode( bless( { : | | __PRERUN_MODE => '', : | | __START_MODE => 'start', : | | __PRERUN_MODE_LOCKED => 1, : | | __QUERY_OBJ => bless( { : | | '.header_printed' => '1', : | | '.charset' => 'ISO-8859-1', : | | '.parameters' => [], : | | '.fieldnames' => {}, : | | escape => 1 : | | }, 'CGI' ), : | | __RUN_MODES => { : | | start => 'dump_html' : | | }, : | | __HEADER_PROPS => {}, : | | __HEADER_TYPE => 'header', : | | __CURRENT_RUNMODE => 'start', : | | __MODE_PARAM => 'rm' : | | }, 'CGI::Application::Loop' ) ) TRACE: +-CGI::Application::cgiapp_prerun( bless( { : | | __PRERUN_MODE => '', : | | __START_MODE => 'start', : | | __QUERY_OBJ => bless( { : | | '.header_printed' => '1', : | | '.charset' => 'ISO-8859-1', : | | '.parameters' => [], : | | '.fieldnames' => {}, : | | escape => 1 : | | }, 'CGI' ), : | | __RUN_MODES => { : | | start => 'dump_html' : | | }, : | | __HEADER_PROPS => {}, : | | __HEADER_TYPE => 'header', : | | __CURRENT_RUNMODE => 'start', : | | __MODE_PARAM => 'rm' : | | }, 'CGI::Application::Loop' ), 'start' ) TRACE: +-CGI::Application::prerun_mode( bless( { : | | __START_MODE => 'start', : | | __PRERUN_MODE_LOCKED => 1, : | | __RUN_MODES => { : | | start => 'dump_html' : | | }, : | | __HEADER_PROPS => {}, : | | __HEADER_TYPE => 'header', : | | __MODE_PARAM => 'rm', : | | __PRERUN_MODE => '', : | | __QUERY_OBJ => bless( { : | | '.header_printed' => '1', : | | '.charset' => 'ISO-8859-1', : | | '.parameters' => [], : | | '.fieldnames' => {}, : | | escape => 1 : | | }, 'CGI' ), : | | __CURRENT_RUNMODE => 'start' : | | }, 'CGI::Application::Loop' ) ) TRACE: +-CGI::Application::run_modes( bless( { : | | __START_MODE => 'start', : | | __PRERUN_MODE_LOCKED => 1, : | | __RUN_MODES => { : | | start => 'dump_html' : | | }, : | | __HEADER_PROPS => {}, : | | __HEADER_TYPE => 'header', : | | __MODE_PARAM => 'rm', : | | __PRERUN_MODE => '', : | | __QUERY_OBJ => bless( { : | | '.header_printed' => '1', : | | '.charset' => 'ISO-8859-1', : | | '.parameters' => [], : | | '.fieldnames' => {}, : | | escape => 1 : | | }, 'CGI' ), : | | __CURRENT_RUNMODE => 'start' : | | }, 'CGI::Application::Loop' ) ) TRACE: +-CGI::Application::dump_html( bless( { : | | __START_MODE => 'start', : | | __PRERUN_MODE_LOCKED => 1, : | | __RUN_MODES => { : | | start => 'dump_html' : | | }, : | | __HEADER_PROPS => {}, : | | __HEADER_TYPE => 'header', : | | __MODE_PARAM => 'rm', : | | __PRERUN_MODE => '', : | | __QUERY_OBJ => bless( { : | | '.header_printed' => '1', : | | '.charset' => 'ISO-8859-1', : | | '.parameters' => [], : | | '.fieldnames' => {}, : | | escape => 1 : | | }, 'CGI' ), : | | __CURRENT_RUNMODE => 'start' : | | }, 'CGI::Application::Loop' ) ) TRACE: | +-CGI::Application::get_current_runmode( bless( { : | ! | __START_MODE => 'start', : | ! | __PRERUN_MODE_LOCKED => 1, : | ! | __RUN_MODES => { : | ! | start => 'dump_html' : | ! | }, : | ! | __HEADER_PROPS => {}, : | ! | __HEADER_TYPE => 'header', : | ! | __MODE_PARAM => 'rm', : | ! | __PRERUN_MODE => '', : | ! | __QUERY_OBJ => bless( { : | ! | '.header_printed' => '1', : | ! | '.charset' => 'ISO-8859-1', : | ! | '.parameters' => [], : | ! | '.fieldnames' => {}, : | ! | escape => 1 : | ! | }, 'CGI' ), : | ! | __CURRENT_RUNMODE => 'start' : | ! | }, 'CGI::Application::Loop' ) ) TRACE: | +-CGI::Application::query( bless( { : | ! | __START_MODE => 'start', : | ! | __PRERUN_MODE_LOCKED => 1, : | ! | __RUN_MODES => { : | ! | start => 'dump_html' : | ! | }, : | ! | __HEADER_PROPS => {}, : | ! | __HEADER_TYPE => 'header', : | ! | __MODE_PARAM => 'rm', : | ! | __PRERUN_MODE => '', : | ! | __QUERY_OBJ => bless( { : | ! | '.header_printed' => '1', : | ! | '.charset' => 'ISO-8859-1', : | ! | '.parameters' => [], : | ! | '.fieldnames' => {}, : | ! | escape => 1 : | ! | }, 'CGI' ), : | ! | __CURRENT_RUNMODE => 'start' : | ! | }, 'CGI::Application::Loop' ) ) TRACE: +-CGI::Application::cgiapp_postrun( bless( { : | | __START_MODE => 'start', : | | __PRERUN_MODE_LOCKED => 1, : | | __RUN_MODES => { : | | start => 'dump_html' : | | }, : | | __HEADER_PROPS => {}, : | | __HEADER_TYPE => 'header', : | | __MODE_PARAM => 'rm', : | | __PRERUN_MODE => '', : | | __QUERY_OBJ => bless( { : | | '.header_printed' => '1', : | | '.charset' => 'ISO-8859-1', : | | '.parameters' => [], : | | '.fieldnames' => {}, : | | escape => 1 : | | }, 'CGI' ), : | | __CURRENT_RUNMODE => 'start' : | | }, 'CGI::Application::Loop' ), \'<P> : | | Current Run-mode: \'<B>start</B>\'<BR> : | | <P> : | | Query Parameters:<BR> : | | <OL> : | | </OL> : | | <P> : | | Query Environment:<BR> : | | <OL> : | | <LI> HOMEDRIVE => \'<B>C:</B>\' : | | <LI> HOMEPATH => \'<B>\\</B>\' : | | <LI> TEMP => \'<B>C:\\DOCUME~1\\_\\LOCALS~1\\Temp</B>\' : | | <LI> TMP => \'<B>C:\\DOCUME~1\\_\\LOCALS~1\\Temp</B>\' : | | <OL> : | | ' ) TRACE: +-CGI::Application::_send_headers( bless( { : | | __START_MODE => 'start', : | | __PRERUN_MODE_LOCKED => 1, : | | __RUN_MODES => { : | | start => 'dump_html' : | | }, : | | __HEADER_PROPS => {}, : | | __HEADER_TYPE => 'header', : | | __MODE_PARAM => 'rm', : | | __PRERUN_MODE => '', : | | __QUERY_OBJ => bless( { : | | '.header_printed' => '1', : | | '.charset' => 'ISO-8859-1', : | | '.parameters' => [], : | | '.fieldnames' => {}, : | | escape => 1 : | | }, 'CGI' ), : | | __CURRENT_RUNMODE => 'start' : | | }, 'CGI::Application::Loop' ) ) TRACE: | +-CGI::Application::query( bless( { : | ! | __START_MODE => 'start', : | ! | __PRERUN_MODE_LOCKED => 1, : | ! | __RUN_MODES => { : | ! | start => 'dump_html' : | ! | }, : | ! | __HEADER_PROPS => {}, : | ! | __HEADER_TYPE => 'header', : | ! | __MODE_PARAM => 'rm', : | ! | __PRERUN_MODE => '', : | ! | __QUERY_OBJ => bless( { : | ! | '.header_printed' => '1', : | ! | '.charset' => 'ISO-8859-1', : | ! | '.parameters' => [], : | ! | '.fieldnames' => {}, : | ! | escape => 1 : | ! | }, 'CGI' ), : | ! | __CURRENT_RUNMODE => 'start' : | ! | }, 'CGI::Application::Loop' ) ) TRACE: | +-CGI::Application::header_type( bless( { : | ! | __START_MODE => 'start', : | ! | __PRERUN_MODE_LOCKED => 1, : | ! | __RUN_MODES => { : | ! | start => 'dump_html' : | ! | }, : | ! | __HEADER_PROPS => {}, : | ! | __HEADER_TYPE => 'header', : | ! | __MODE_PARAM => 'rm', : | ! | __PRERUN_MODE => '', : | ! | __QUERY_OBJ => bless( { : | ! | '.header_printed' => '1', : | ! | '.charset' => 'ISO-8859-1', : | ! | '.parameters' => [], : | ! | '.fieldnames' => {}, : | ! | escape => 1 : | ! | }, 'CGI' ), : | ! | __CURRENT_RUNMODE => 'start' : | ! | }, 'CGI::Application::Loop' ) ) TRACE: | +-CGI::Application::header_props( bless( { : | ! | __START_MODE => 'start', : | ! | __PRERUN_MODE_LOCKED => 1, : | ! | __RUN_MODES => { : | ! | start => 'dump_html' : | ! | }, : | ! | __HEADER_PROPS => {}, : | ! | __HEADER_TYPE => 'header', : | ! | __MODE_PARAM => 'rm', : | ! | __PRERUN_MODE => '', : | ! | __QUERY_OBJ => bless( { : | ! | '.header_printed' => '1', : | ! | '.charset' => 'ISO-8859-1', : | ! | '.parameters' => [], : | ! | '.fieldnames' => {}, : | ! | escape => 1 : | ! | }, 'CGI' ), : | ! | __CURRENT_RUNMODE => 'start' : | ! | }, 'CGI::Application::Loop' ) ) TRACE: +-CGI::Application::teardown( bless( { : | | __START_MODE => 'start', : | | __PRERUN_MODE_LOCKED => 1, : | | __RUN_MODES => { : | | start => 'dump_html' : | | }, : | | __HEADER_PROPS => {}, : | | __HEADER_TYPE => 'header', : | | __MODE_PARAM => 'rm', : | | __PRERUN_MODE => '', : | | __QUERY_OBJ => bless( { : | | '.header_printed' => '2', : | | '.charset' => 'ISO-8859-1', : | | '.parameters' => [], : | | '.fieldnames' => {}, : | | escape => 1 : | | }, 'CGI' ), : | | __CURRENT_RUNMODE => 'start' : | | }, 'CGI::Application::Loop' ) )

MJD says "you can't just make shit up and expect the computer to know what you mean, retardo!"
I run a Win32 PPM repository for perl 5.6.x and 5.8.x -- I take requests (README).
** The third rule of perl club is a statement of fact: pod is sexy.


Comment on CGI::Application::Loop
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://294034]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (9)
As of 2015-07-29 06:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (260 votes), past polls