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.