stas 2004/03/08 22:33:55
Modified: ModPerl-Registry/lib/ModPerl RegistryCooker.pm Log: - match FATAL category when unsetting warnings - add a comment explaining why we need to assign empty vars/anon subs when flushing namespaces (to avoid problems with aliases) Revision Changes Path 1.43 +6 -1 modperl-2.0/ModPerl-Registry/lib/ModPerl/RegistryCooker.pm Index: RegistryCooker.pm =================================================================== RCS file: /home/cvs/modperl-2.0/ModPerl-Registry/lib/ModPerl/RegistryCooker.pm,v retrieving revision 1.42 retrieving revision 1.43 diff -u -u -r1.42 -r1.43 --- RegistryCooker.pm 4 Mar 2004 06:01:05 -0000 1.42 +++ RegistryCooker.pm 9 Mar 2004 06:33:55 -0000 1.43 @@ -195,7 +195,8 @@ } { # run the code and preserve warnings setup when it's done - no warnings; + no warnings FATAL => 'all'; + #local $^W = 0; eval { $cv->($r, @_) }; ModPerl::Global::special_list_call(END => $package); } @@ -512,6 +513,10 @@ no strict 'refs'; my $tab = \%{ $self->{PACKAGE} . '::' }; + + # below we assign to a symbol first before undef'ing it, to avoid + # nuking aliases. If we undef directly we may undef not only the + # alias but the original function as well for (keys %$tab) { my $fullname = join '::', $self->{PACKAGE}, $_;