On Wed, 2002-07-31 at 21:33, Geoffrey Young wrote: > > > simran wrote: > > > Does that mean that > > > > $r->dir_config is not the same as $r->server->dir_config ? > > > > A PerlUnsetVar would indeed be very handy... as would PerlUnsetEnv :-) > > I looked into implementing that the last time it came up but IIRC it > would take redoing the merge routines - from what I remember I got > PerlUnsetVar to work at conf parse time, but it ended up being > repopulated at request time when the directory merger ran (to merge > $r->server->dir_config and $r->dir_config I think). > > calling unset() manually is probably your best bet. >
I wouldn't mind using that, except that it does not work for me... (i have copied a part of the original message below as that got snipped...) I have a situation where it is convinent for me to define a global "PerlSetVar" in my httpd.conf and then unset it for particular virtual hosts. I used to use the following configuration successfully: ---------------------------------------------------- httpd.conf ---------- <Perl> use Apache::Server; Apache->server->dir_config->unset("MyVar"); </Perl> ----------------------------------------------------- That stopped working for me ever since we compiled Apache/1.3.26 (Linix - Debian) with mod_perl/1.27 Has anyone else had the same issue? On a similar note: The following pices of code do not work: ----------------------------------------------------- code sample 1 -------------- 1. sub handler { 2. my $r = instance Apache::Request(shift); 3. 4. $r->dir_config(MyVar => undef); 5. 6. $r->dir_config->unset("MyVar"); 7. 8. $r->dir_config->set(MyVar => undef); 9. 10. } None of lines 4, 6 or 8 actually unset the variable. A collegue tells me that if a "true" value (for the key MyVar) is not passed to set then it ends up returning the value of MyVar - but then how i want to set the value of MyVar to be false. I would have though that unset/set would have specifically done what i told them to unset/set rather than do fancy things with truth values...