On 4/24/06, Ed Pigg <[EMAIL PROTECTED]> wrote: > So how I put things like session initialization, database connection, > etc.. in the SUPER::cgiapp_init sub. So my SUB CLASS would be > something like > > sub cgiapp_init { > my $self = shift; > $self->SUPER::cgiapp_init(@_); > $self->start_mode(); > $self->run_modes( ... ); > }
Yes, that would work. But if you are doing stuff like session init and database connections, and you are sure you want to do this on all requests, for every runmode, then I would suggest using Michael's suggestion and set up a callback (which will always run regardless of what you do in the subclass). That is safer, since you don't have to remember to add that SUPER call in the subclass everytime. __PACKAGE__->add_callback(init => \&_my_init); Just put that at the top of your base class somewhere (not inside a subroutine), and make sure you are using at least CGI::Application 4.0, which is when the callback code was added. That will execute the _my_init method for every runmode request during the 'init' stage. The only problem you may run into, is that the init callbacks are called immediately after the cgiapp_init method is called. So your subclass can not do anything in cgiapp_init that depends on something that happens in your init callback, since it will not have been executed yet. Cheers, Cees --------------------------------------------------------------------- Web Archive: http://www.mail-archive.com/cgiapp@lists.erlbaum.net/ http://marc.theaimsgroup.com/?l=cgiapp&r=1&w=2 To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]