I'm seeing this problem both under mod_perl 1.25 and 1.26. I've
installed mod_perl as a DSO outside of the Apache source tree using
APXS. It seems to work fine, except for Apache::URI. Here's my
test script:
#!/usr/bin/perl
use strict;
use Apache::FakeRequest;
use Apache::URI;
my $req = Apache::FakeRequest->new(
'get_server_name' => 'dev1.aus1.datafoundry.net'
);
my $uri = Apache::URI->parse( $req, 'main/test.html' );
print 'URI: ', $uri->unparse(), "\n";
print 'SCHM: ', $uri->scheme(), "\n";
print 'PATH: ', $uri->path(), "\n";
print 'RPTH: ', $uri->rpath(), "\n";
All I'm doing is some simple testing. The problem is, I'm getting
this error:
Can't locate object method "parse" via package "Apache::URI"
(perhaps you forgot to load "Apache::URI"?) at t1 line 10.
Looking at an old install of both perl and mod_perl (which are both
not being used or considered), I see that there are actually three
related URI files:
/usr/local/lib/perl5/site_perl/5.6.0/i86pc-solaris/Apache/URI.pm
/usr/local/lib/perl5/site_perl/5.6.0/i86pc-solaris/auto/Apache/URI/URI.bs
/usr/local/lib/perl5/site_perl/5.6.0/i86pc-solaris/auto/Apache/URI/URI.so
Under the version of perl I'm actually working with, though, only
the first exists
/usr/local/lib/perl5/site_perl/5.6.1/i86pc-solaris/Apache/URI.pm
How come the rest of the code for URI isn't being installed? Did
something change at 1.25 to make it unnecessary? Am I doing
something wrong? Does parse() not exist as a class method anymore
(if so, the docs are out of date)?
The perl being used has this configured for @INC:
Characteristics of this binary (from libperl):
Compile-time options: USE_LARGE_FILES
Built under solaris
Compiled at May 14 2001 09:09:43
@INC:
/usr/local/lib/perl5/5.6.1/i86pc-solaris
/usr/local/lib/perl5/5.6.1
/usr/local/lib/perl5/site_perl/5.6.1/i86pc-solaris
/usr/local/lib/perl5/site_perl/5.6.1
/usr/local/lib/perl5/site_perl
.
Thanks in advance for any assistance,
Philip
* Philip Molter
* Texas.net Internet
* http://www.texas.net/
* [EMAIL PROTECTED]