2

I was attempting a switch from ActivePerl 5.12.2 (64 bit) to Strawberry Perl 5.18.2.2 (64 bit). All this on a Windows 7 Home Premium SP1 64 bit. The sequence I went through is as follows:

1) Installed Strawberry Perl side by side with the old ActivePerl. (I did a similar thing on another box, only it was ActivePerl 5.14.2 without any problem.) Rearranged the %path% to have Strawberry Perl first. Perl crashed consistently and frequently. I was only able to run "Perl -v" without it crashing.

2) Following web search results, I uninstalled ActivePerl, uninstalled Strawberry Perl and deleted all related directories.

3) I then reinstalled afresh Strawberry Perl. Now I got an error: "The program can't start because perl512.dll is missing from your computer." Again consistently, except when running "Perl -v".

4) I searched the registry and found only a few pointers to some ActivePerl (now deleted) directories. No reference to perl512.dll was found. I deleted the ActivePerl directory pointers. This didn't help.

Searching this site and the web in general only yields the advice to uninstall every old Perl installation before installing the new.

Please help...

MeirG
  • 333
  • 2
  • 14
  • After you uninstall & delete the directories, is there still a perl.exe somewhere else in your path? – tjd May 02 '14 at 12:02
  • Yes: C:\strawberry\c\bin;C:\strawberry\perl\site\bin;C:\strawberry\perl\bin – MeirG May 02 '14 at 12:17
  • You didn't say that you rebooted (do people still have to do that with the newer versions of Windows?) but perhaps there's an old `perl` process still running and the `dll` is in memory somewhere? – G. Cito May 02 '14 at 12:45
  • Sorry @tjd, I might have misunderstood you! The only perl.exe on my computer is in C:\strawberry\perl\bin. This directory also has perl5.18.2.exe, perl518.dll as well as perlglob.exe. That's it! The presence of perl518.dll suggests that whatever is looking for perl512.dll is a remnant of the old ActivePerl 5.12, isn't it? – MeirG May 02 '14 at 12:59
  • Re "Searching this site and the web in general only yields the advice to uninstall every old Perl installation before installing the new", Bad advice. No such thing is needed. I have 10 different builds of Perl on both my Windows and linux machines. – ikegami May 02 '14 at 13:06
  • 3
    You are probably using a module that was installed with your old Perl. – ikegami May 02 '14 at 13:06
  • Dear @G.Cito, yes, of course I did reboot, even to a total cold start. (Yes, you still need to do that in windows, at least up to Windows 7.) And no, neither a perl "service" (similar to a *nix daemon) nor any perl process runs in the background. – MeirG May 02 '14 at 13:07
  • OK I would think @ikegami's comment is the most likely explanation but, since you say you removed *everything*, the module must be in an unusual location. – G. Cito May 02 '14 at 13:48
  • @G. Cito, Well, it's one or the other. Either a `perl.exe` or a module `.dll` linked to `perl512.dll` is still around and being used. – ikegami May 02 '14 at 13:51
  • 1
    Dear @ikegami, you are absolutely right! The culprit was a directory pointed to by the environmental constant PERL5LIB. There I found a tremendous amount of libraries that I never conscientiously put there, and I have no idea how all these got there. (Does ActiveState, CPAN or CPANM install modules there?) Renaming that directory solved the problem! Thank you all for your help! Meir – MeirG May 02 '14 at 14:16
  • 1
    You probably used local::lib, which is kinda silly on a Windows machine (ignoring the problems you've just experienced from using `INSTALL_BASE` instead of `PREFIX`+`LIB`). – ikegami May 02 '14 at 15:30

1 Answers1

0

Just so this question doesn't appear unanswered - check the environment variables, such as PERL5LIB. They can still point to old libraries even after an uninstall.

Randall
  • 2,859
  • 1
  • 21
  • 24