Hello,

The online mod_perl guide
(http://thingy.kcilink.com/modperlguide/perl/The_Scope_of_the_Special_Perl_Va.ht
ml) states:

"Special Perl variables like $| (buffering), $^T (script's start time), $^W
(warnings mode), $/ (input record separator), $\ (output record separator) and
many more are all true global variables; they do not belong to any particular
package (not even main::) and are universally available. This means that if you
change them, you change them anywhere across the entire program; furthermore you
cannot scope them with my()."

My question pertains the CGI %ENV hash.  First, I'm assumong that this is a
global variable in the sense of a Perl Special Variable, and not just a main::
or other package global.  My question is how is it the case that the %ENV
variable script instance might be working with doesn't get clobbered or "reset"
by the next incoming request.  Are some variables, like %ENV treated differently
by mod_perl?

Also, how can special variables be reliably initialized?  For example, if one
request provides a certain attribute, such as HTTP_IDENT, but a subsequent
request does not, how do I know that the value of $ENV{HTTP_IDENT} on the second
request will indeed be undefined?

Thanks.

Bill


Reply via email to