Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re^4: mod_perl and multiuser global variables

by maverick (Curate)
on Dec 05, 2005 at 16:14 UTC ( #514166=note: print w/ replies, xml ) Need Help??


in reply to Re^3: mod_perl and multiuser global variables
in thread mod_perl and multiuser global variables

You can use "global" in memory values, but only as constants. Once you change the value in one place, it only changes there. There's a couple of ways you can make read-write globals. Via a database (as mentioned above), via a second instance of Apache::Session (or CGI::Session) using a constant superLongSecretKeyThatDoesn'tFitTheAutoGenerateFormatKey (ahem) or something like IPC::ShareLite to get true "shared across all children" global variables.

The Database method might have some performance penalties, but the advantage is that if you every start load balancing web servers, your global variables are still global.

The Secret Session method, is probably the fastest and easiest to code, since you already have similar parts in your program, but it also has some security implications surrounding your secret session key.

The IPC::SharedLite method requires installing a new module and learning some new (but realively straight forward) techniques. The amount of "shared" memory on a system is much smaller than "main" memory (at least with Unix) so you can't cram it TOO full, but it will yield the desired effect. For what you're trying to do, I'd be tempted to pick this method.

/\/\averick


Comment on Re^4: mod_perl and multiuser global variables

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://514166]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (12)
As of 2014-08-20 15:15 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (116 votes), past polls