Beefy Boxes and Bandwidth Generously Provided by pair Networks DiBona
Problems? Is your data what you think it is?
 
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 pondering the Monastery: (15)
As of 2014-04-16 17:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (433 votes), past polls