Derek Walker wrote:

I'm running into the old chestnut of a problem of how to properly
'wrap' a perl application under mod_perl to avoid the shared global
variable issue (that I only partially understand at this point)

The basic idea is don't use globals (to make things simpler, "my" package scoped variables are the same as globals in this email). The problem is remembering that your package won't be recompiled on every request so anything you put in a global will stick around for every request. Sometimes this is what you want (say for a configuration object which doesn't change between requests) but in others it's not. I see you have a $user and @roles. Those are definitely per-request kinds of things and should never be globals.

Also, you really shouldn't put a database handle as a global either since that could timeout and then you'll get strange problems at 6am when people start using your app again in the morning after it's been sitting for hours without any use. Under mod_perl Apache::DBI takes care of giving you a nice peristant DB conection without you having to worry about things like timeouts.

--
Michael Peters
Plus Three, LP


#####  CGI::Application community mailing list  ################
##                                                            ##
##  To unsubscribe, or change your message delivery options,  ##
##  visit:  http://www.erlbaum.net/mailman/listinfo/cgiapp    ##
##                                                            ##
##  Web archive:   http://www.erlbaum.net/pipermail/cgiapp/   ##
##  Wiki:          http://cgiapp.erlbaum.net/                 ##
##                                                            ##
################################################################

Reply via email to