At 5:53 PM -0500 12/16/01, Michael G Schwern wrote: >I just recently tried to install a module (Test::Harness 2.00) using >bleadperl on VMS and noticed it was using miniperl. bleadperl's >perl_setup.com doesn't define a miniperl symbol, but I had one left >over from 5.005_03 and it was pointing there. So the build choked >when it tried to use the 5.006 only ExtUtils::Installed with a >5.005_03 miniperl. > >So, there's two things going on here. > > 1) Why is MakeMaker looking for miniperl? Hmm. There is no miniperl installed with 5.005_03 (or later) in any installation I've looked at, nor have I found any version of Perl on VMS that defines miniperl as a symbol (it's always invoked directly during the core build). Do you see something from the command C<SHOW SYMBOL MINIPERL> ? Perhaps your PERL_ROOT logical name points to a 5.005_03 build directory (or possibly such a directory is in your path). But that should only happen if you were running Makefile.PL with 5.005_03. Were you? I have successfully built and installed the extension against a bleadperl build directory tree, and though there were a number of test failures, I had no trouble getting it to build and install, and miniperl was never selected by find_perl even though it exists in the directory PERL_ROOT points to. > 2) Should perl_setup.com define it? I don't think so. I don't believe there is anything that has reason to use miniperl that doesn't also know how to invoke it directly. >I think the answer to #1 is "because it needs it when building the >core". That can be made more elegant by only looking for miniperl if >PERL_CORE is set. I can fix it in ExtUtils::MM_Unix (patch below), I don't have any objections to this patch. Did it do you any good? >but somebody else is going to have to fix this in MM_VMS: Hmm. I'd be willing to take a look if I had something I could reproduce. > # Check miniperl before perl, and check names likely to contain > # version numbers before "generic" names, so we pick up an > # executable that's less likely to be from an old installation. > @snames = sort { my($ba) = $a =~ m!([^:>\]/]+)$!; # basename > my($bb) = $b =~ m!([^:>\]/]+)$!; > my($ahasdir) = (length($a) - length($ba) > 0); > my($bhasdir) = (length($b) - length($bb) > 0); > if ($ahasdir and not $bhasdir) { return 1; } > elsif ($bhasdir and not $ahasdir) { return -1; } > else { $bb =~ /\d/ <=> $ba =~ /\d/ > or substr($ba,0,1) cmp substr($bb,0,1) > or length($bb) <=> length($ba) } } @$names; -- ________________________________________ Craig A. Berry mailto:craigberry@mac.com "... getting out of a sonnet is much more difficult than getting in." Brad LeithauserThread Previous | Thread Next