On Thu, Mar 17, 2005 at 03:07:15PM -0600, Craig A. Berry wrote:
> >Has anyone gotten Module::Install to work under VMS? Or has anyone _not_ 
> >been able to get it to install?
> 
> Install, heck, I can't even get it to build:
> 
> $ perl Makefile.PL
> Can't locate object method "new" via package 
> "Module::Install::autoinstall" (perhaps you forgot to load 
> "Module::Install::autoinstall"?) at inc/Module/Install.pm - 
> lib/Module/Install.pm line 269.
> %SYSTEM-F-ABORT, abort
> 
> A likely suspect is that package names are derived from the filesystem,
> and so are case-leveled. That should be ok in a C<use> or C<require>,
> but obviously saying the equivalent of C<if 'Foo::Bar' eq 'foo::bar'>
> isn't going to work. 

That is problematic.  If it has to scan the filesystem to figure out what's
in inc/ then there could be problems.   A simple work around for non-case
preserving file systems might be a patch to Module::Install::Base to
peek inside the .pm file for a package statement which matches (case-
insensitively) the name of the file and using that to correct the case.


> I tried modifying several places that seemed to be
> doing something similar to that (to no avail), but I don't understand
> the code duplication between inc/ and lib/

My guess is Module::Install is deliberately using itself to install itself
so as to better eat its own dog food.


> and I don't understand all
> the magic abstractions that the module is based on. For example, there
> is no "new" method in Module::Install::AutoInstall, so of course it
> can't be located, but I have a feeling it wouldn't even be looking for
> it if something else hadn't gone wrong way up the chain somewhere.

package Module::Install::AutoInstall;
use Module::Install::Base; @ISA = qw(Module::Install::Base);

Its just inheritance.  There is a Module::Install::Base->new.

Reply via email to