Hi. This refers indirectly to the thread "custom proxy setup with mod_perl", but is more general, I believe. For the PerlFixupHandler which was discussed before, I need to compare the current request URL to a predefined static list of URLs, to decide how exactly to proxy this call. At the moment, there are about 15 URLs in that list; and I believe that there might, maybe in some cases, be up to 100. I suppose that I could make this list of URLs available to the handler by doing something like this : ... PerlFixupHandler My::Proxy->handler PerlAddVar CHKU "http://www.site-1.com/" PerlAddVar CHKU "http://www.site-2.org/path?query" PerlAddVar CHKU "http://www.site-3.biz/" PerlAddVar CHKU "http://www.site-4.edu/" etc.. 50 times and then do my @list = $r->dir_config('CHKU'); in the handler. On the other hand, I could also put these URLs in a separate configuration text file, and have the handler read it at each invocation : ... PerlFixupHandler My::Proxy->handler PerlSetVar URL_LIST "/etc/apache2/conf/urllist.txt" and in the handler : my $urllist = $r->dir_config('URL_LIST') || "default.list"; my @list = (); my $fh; open($fh,'<',$urllist) or safe_die; @list = <$fh>; close $fh; But neither of these is very satisfying. The first one above is OK up to 10-20 URLs, but becomes a bit unsightly and clumsy for more. The second one has the handler read and parse a file at each invocation (even if the request URL turns out not to be in the list, and the call should just be proxy-ed as is). Sounds inefficient. So, I would like to do this : Package My::Proxy; our $URLS; sub handler { my $r = shift; unless (defined($URLS)) { my $urllist = $r->dir_config('URL_LIST') || "/etc/apache2/default_urls.list"; my $fh; my @list; open($fh,'<',$urllist) or safe_die; @list = <$fh>; close $fh; $URLS = \@list; # or = [ @list ] ?? } .. use @$URLS, read-only .. } As I understand the above, in a pre-fork MPM, each time Apache forks a new child, at the first handler invocation $URLS will be undef, and thus the code in the handler will define it, as a reference to an array of URLs read from the file. And from then on, the list accessible through $URLS should remain available and unvariable at each subsequent invocation of this handler (in this child), as long as this Apache child process lives. First, I may be wrong in my understanding. (that's a question). Second, if I am right in the above, then does this same understanding extend to all possible Apache MPMs ? Or am I creating a horrible risk of some race condition, or memory leak here ?