> Don't mess with the cooker, try using a subclass, e.g.: > > # ModPerl/RegistryPrefork.pm > > package ModPerl::RegistryPrefork; > > use strict; > use warnings FATAL => 'all'; > > our $VERSION = '0.01'; > > use base qw(ModPerl::Registry); > > use File::Basename (); > > sub handler : method { > my $class = (@_ >= 2) ? shift : __PACKAGE__; > my $r = shift; > return $class->new($r)->default_handler(); > } > > sub chdir_file { > use File::Basename(); > my $file = @_ == 2 ? $_[1] : $_[0]->{FILENAME}; > my $dir = File::Basename::dirname($file); > chdir $dir or die "Can't chdir to $dir: $!"; > } > > 1;
I copied this into a new file "RegistryPrefork.pm" in the same directory as the ModPerl Registry.pm in the perl tree, and changed the PerlResponseHandler ModPerl::Registry line in startup.pl to PerlResponseHandler ModPerl::RegistryPrefork and restored the RegistryCooker.pm file to its original contents. I also removed the Apache::RequestRec::chdir_file definition in my startup.pl This seems to work OK. Hopefully I should now be able to remove the mod_perl 1's Registry.pm file. Thanks everyone. Colin __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com