Hello, when Apache::Registry::handler ist called with an URL ending in '/' (other than the root-URL '/' itself), compilation of the script the handler is called for fails. This case may occure when using Apache::Registry together with mod_rewrite. The compilation error is due to the URL-based script name the script is compiled within ending in '::'. This ending results from the handler's rule to derive the script name from the URL. The attached diff (relative to Apache::Registry version 2.01 from mod_perl 1.21) resolves the problem by always substituting tailing '/' with the constant '__INDEX__' (in the distribution, this is done for the URI '/' only). -- [ p e t e r d e i s t e r ] diplom-physiker http://www.opus5.de opus 5 interaktive medien gmbh frankfurter strasse 151c 63303 dreieich fon: 06103 5853-128 fax: 06103 5853-200
--- Apache/Registry.pm Tue Feb 8 08:52:47 2000 +++ /home/peter/work/mod_perl-1.21/lib/Apache/Registry.pm Wed Jan 13 03:56:34 +1999 @@ -33,8 +33,6 @@ #local $0 = $filename; #this core dumps!? *0 = \$filename; my $oldwarn = $^W; - $r->log_error("modified Apache::Registry::handler") - if $Debug && $Debug & 4; $r->log_error("Apache::Registry::handler for $filename in process $$") if $Debug && $Debug & 4; @@ -56,15 +54,13 @@ my $mtime = -M _; my $uri = $r->uri; - # $uri = "/__INDEX__" if $uri eq "/"; + $uri = "/__INDEX__" if $uri eq "/"; # turn into a package name $r->log_error(sprintf "Apache::Registry::handler examining %s", $uri) if $Debug && $Debug & 4; my $script_name = $r->path_info ? substr($uri, 0, length($uri)-length($r->path_info)) : $uri; - $script_name =~ s:/+$:/__INDEX__:; - if($Apache::Registry::NameWithVirtualHost) { my $name = $r->get_server_name;