SPUG: Constants
Andrew Sweger
andy at n2h2.com
Mon Jul 10 18:03:08 CDT 2000
On Jul 10, 2000 @ 3:37pm, Jonathan Gardner wrote:
> We're using mod_perl on apache and we want to improve the performance and
> ease of programming our scripts. One of the ideas was centralizing important
> urls in their appropriate modules. The problem is that having a module run
> on several scripts, the chance of having a script actually change a variable
> in that module is good, and since the modules are persistent, the change
> would remain after the script finished. So we need some way of protecting
> our variables from being changed, while keeping them easy to access.
I'm assuming you're using mod_perl via Apache::Registry and not writing
actual mod_perl Perl handlers.
Are you using global (package) variables? Shouldn't be. That gets rid of
that problem. If you have file bound lexicals in the module (or lexicals
bound to a closure), then you'll want to establish an initialization
procedure for those scripts using the module (have &TheModule::import()
perform the initialization for you for extra laziness).
> If this were C++ (and it isn't) I would define those variables as const. The
^^^^^^^^^^^^
Thank all that is good in the world (and Larry Wall)!
> perl constant pragma (or is it a module? I am not sure...) works but it is
> clunky to use. You can't use those constants as regular variables, unless
> you jimmy them around.
Perl's 'use constant pragma (which is a module) uses named subroutines as
the constants. They become "inlined" if it's obvious to perl that the
return value is indeed a constant.
> My idea was to build a module called something like:
> Tie::Constanst
Bleh. Too complicated.
--
Andrew Sweger <andy at n2h2.com> | N2H2, Incorporated
Systems Architect | 900 Fourth Avenue, Suite 3400
Advanced Technologies Division | Seattle WA 98164-1059
v=206.336.2947 f=206.336.1541 | http://www.n2h2.com/
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
POST TO: spug-list at pm.org PROBLEMS: owner-spug-list at pm.org
Subscriptions; Email to majordomo at pm.org: ACTION LIST EMAIL
Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address
For full traffic, use spug-list for LIST ; otherwise use spug-list-digest
Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/
More information about the spug-list
mailing list