[cgiapp] code reuse.
Mark Fuller
azfuller at gmail.com
Mon Mar 17 13:07:12 EDT 2008
On Mon, Mar 17, 2008 at 7:05 AM, James.Q.L <shijialeee at yahoo.com> wrote:
> > I might be missing the point, but what's wrong with storing $uuid in
> > Company::Util as an "our" variable and accessing it from anywhere as
> > $Company::Util::uuid ?
>
> correct me if i am wrong. that won't work under mod_perl. because our $uuid is a global
> package variable and shared by all instances.
I don't understand how that works. If I have a simple script (in
mod_perl) and "require Some::Module.pm," is it being compiled into a
standalone package? If 14 other scripts require it they all get the
same compiled package (in whatever state the others left it)?
I thought it was unique to the script that required it. It seems like
it would create bottlenecks if Some::Module.pm did a lot of
processing, blocking other scripts that required it (and share it?)
and are now calling it.
If you (or anyone) can confirm that's how it works I'd appreciate it.
> what i want is to setup $uuid and $dbh for the Company:: modules so that i can do
>
> use base 'CGI::Application';
> use Company::CAP::EventLogging; # a plugin for CGI::Application
>
> sub cgiapp_init {
> # init Company::Base
> $company = Company::Base->new();
> $company->dbh( MyApp::DB->dbh );
> $company->user($ENV{REMOTE_USER});
> # then somehow all my Company:: can start to use the $dbh etc..
> }
>
> sub method {
> shift->elog("log this");
> }
You're calling "elog" as a method? In that case you could store $dbh
(etc.) in C::A's param method. Then elog (etc.) can retrieve it using
the param method?
Mark
More information about the cgiapp
mailing list