Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris

Re: mod_perl variable persistence across request and/or session

by davido (Archbishop)
on Oct 01, 2011 at 21:38 UTC ( #929070=note: print w/replies, xml ) Need Help??

in reply to mod_perl variable persistence across request and/or session

mod_perl is a persistent process, but there's no guarantee that from one load to the next you will get the *same* persistent process; Apache can spawn multiple threads which each handle requests, but don't know about the state of the other requests. The persistence makes mod_perl tricky from the standpoint that globals may retain values from one hit to the next. But it also makes mod_perl tricky from the standpoint that from one hit to the next you may not get the same process.

CGI in general (and by derivation, web server frameworks too ) is stateless. mod_perl is not only stateless, it's deceptive in that it can sometimes give the impression of maintaining state (and usually when you don't want it to).

If you really want to maintain state between loads, do it explicitly using cookies and a database or temp-files, and/or send JSON packets back and forth, as frameworks such as Mojolicious do in a restful way.


  • Comment on Re: mod_perl variable persistence across request and/or session

Replies are listed 'Best First'.
Re^2: mod_perl variable persistence across request and/or session
by Anonymous Monk on Oct 04, 2011 at 10:25 UTC
    Ok i get apache documentation and read about mpm configuration and there is a problem whit the "global" variables... Now i think to implement the features with tmp files...i think it should work... I' m interesting about the JSON methods...i don't know it and if you can post some link to get documentation a little how to in mod_perl it will be fantastic!!!:) Thanks all for the answers!
      the previus post was obviously mine...i was not logged in :(


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://929070]
[Corion]: Meh. SQL window functions would even make pagination easy/trivial (but not performant), as rank() over (partition by user order by timestamp) / 10 as page would give me a page number for each item, with 10 items per page.
[Corion]: Of course, the query performance for "all items on page 10" is likely worse than rank() between 100 and 109 , but if that means I can write 15 lines of SQL instead of needing to think about how to partition things and how to encode the page size...
[Corion]: ... that would be nice. But alas, I'm currently tied to SQLite as minimum implementation, and it doesn't implement window functions :-(
[Corion]: And I'm not aware of any other serverless SQL implementation that even reaches the capability of SQLite, not to mention surpasses it

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (13)
As of 2018-03-22 12:17 GMT
Find Nodes?
    Voting Booth?
    When I think of a mole I think of:

    Results (274 votes). Check out past polls.