http://www.perlmonks.org?node_id=11207


in reply to Re: CGI.pm Caching Issue
in thread CGI.pm Caching Issue

Does delete_all not take care of that? It does undef %{$self} on the CGI object.

Replies are listed 'Best First'.
RE: RE: Re: CGI.pm Caching Issue
by chromatic (Archbishop) on May 12, 2000 at 01:43 UTC
    No, that won't do it. @QUERY_PARAM is apparently a package variable. Once you have CGI compiled and in memory, @QUERY_PARAM is set until explicitly reset or undefined.

    Note in the subroutine, the CGI object $q goes out of scope (and would thus be destroyed) at either of the return statements. btrott has it right -- Jellybean is a persistent environment like PERLEX or mod_perl, but CGI doesn't know that. We have to give it a hand.

      Okay, I was thinking @QUERY_PARAMS was getting reset from the empty param() list somewhere in there, but that doesn't seem to be the case.

      I would use the $CGI::PERLEX setting, since all it does it flag _reset_globals() to be called in the constructor and is pretty much a "set it and forget it" thing. Of course, 'undef @CGI::QUERY_PARAM' may be the only method guaranteed to work with future versions.