![]() |
|
laziness, impatience, and hubris | |
PerlMonks |
Re: CGI.pm Caching Issueby btrott (Parson) |
on May 11, 2000 at 21:54 UTC ( [id://11194]=note: print w/replies, xml ) | Need Help?? |
Are you running under mod_perl or PerlEx? From a quick glance at the CGI.pm source, it looks like it calls _reset_globals for each new object, if you're running under either of those architectures (mod_perl or PerlEx). Since I believe both of them work similarly--ie. compiling a Perl interpreter into the web server and pre-compiling modules--this would imply that when you're doing "similar" things (only compiling CGI.pm once, or using persistent CGI objects), you'll need to call _reset_globals. Ah, here it is: this is why you're getting that behavior. In the init subroutine, there's this code: So this is initializing your object with the original query, rather than the new (and possibly different) one. And what does _reset_globals do? It calls initialize_globals, which does this: There you go. In persistent situations, then, (mod_perl or PerlEx), CGI.pm needs to clean up @QUERY_PARAM--you'll need to fake this in your persistent application, then. Calling initialize_globals would be another option--plus it's not "private" (no "_"). :)
In Section
Seekers of Perl Wisdom
|
|