EigenFunctions has asked for the
wisdom of the Perl Monks concerning the following question:

I just got a new machine and it is running Win7 64-bit.
I installed Perl for 64-bit and I am sorely disappointed that a lot of my old Perl programs don't work because the libraries (*.pm) are not available for 64-bit. One of the most important libraries is Win32 GUI.

The question is, now that I have Perl64, can I ALSO install Perl32 and just run whichever I need?

I see why not, you could install them both, and use symlinks like you would on Linux. I'm thinking Strawberry Perl which doesn't seem to do Arch separation by default, so for each module you will have to install it twice. However, which Perl distribution are you using?

Depending on your needs, one option would be to consider Strawberry Perl's portable Perl, which does not actually "install" anything. Instead, you run a batch file that sets up the environment variables for a new command prompt so that inside that command prompt it will use the portable Strawberry Perl.

This would allow you to have multiple versions of Perl on your system. Of course, the draw back is that if you want to use a certain module with each version of Perl, you would need to install that module multiple times.

Side-by-Side x64 and x86 Installation: On 64 bit operating systems which support 32 bit compatibility, both x86 and x64 versions of ActivePerl can be installed on the same system as long as they are installed in separate directories. The Windows MSI installer will suggest the following default directories to keep them separate:

That is good to know that I can have both installed and use what I need by specifying it at run time. I run a few analysis programs, from time to time, that are huge with 100's of multi-megabyte data files and having a 64-bit system might speed things up.

I now have "arch = MSWin32-x64-multi-thread-5.14" and it is installed at "D:\Apps\Perl64". Having installed other Win32 applications, there already exists "D:\Apps (x86)", so that is where I will install the 32-bit version of Perl.

Given what you mentioned, there are apparently no environment variables or registry entries that will get confused with two versions on the same machine. Although, I wonder how PPM will distinguish between the two.

As for the loading of two libraries, even though I use a lot of disk space, I don't expect to run out of space anytime soon.

It operates upon the 64-bit install. (Assuming you use your paths not mine :)

One possibility for making life a little easier is to have both perls in your path (your preferred version first), and rename the ppm.bat files in the two subdirectories as (say) ppm32.bat and ppm64.bat.

You could also rename (say) the 64-bit perl.exe to perl64.exe. And you can set up two sets of file associations:

Do not keep ANY perl in your PATH. Associate .pl with a IDE or text editor, not with a perl engine. Make a series of batch files in your windows folder (already on PATH), that do have something like "set PATH=C:\myperlversion\bin;%PATH%" inside. Might also want to research if you can change the prompt template on windows, unix style. It would be easier to identify which CL box has which perl.