ColinB
Wed, 30 Jul 2003 02:42:24 -0700
> 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