Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

Install Perl64 *AND* Perl32

by EigenFunctions (Sexton)
on Mar 15, 2012 at 12:08 UTC ( #959776=perlquestion: print w/replies, xml ) Need Help??
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?

Can anyone help?



Replies are listed 'Best First'.
Re: Install Perl64 *AND* Perl32
by admiral_grinder (Pilgrim) on Mar 15, 2012 at 12:28 UTC
    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?
    Perl\ +-- Perl_5.14_32\ +-- Perl_5.14_64\ +-- perl32 --> .\Perl_5.14_32\bin\Perl.exe +-- perl64 --> .\Perl_5.14_64\bin\Perl.exe
    Do you have a list of Modules handy that don't work. Perhaps somebody here has some suggestions on how to deal with them?
Re: Install Perl64 *AND* Perl32
by Anonymous Monk on Mar 15, 2012 at 12:23 UTC
      You get get a 64 bit version of Win32::GUI if you are prepared to build from source:

Re: Install Perl64 *AND* Perl32
by Anonymous Monk on Mar 15, 2012 at 12:20 UTC

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

    If your OS can run 32-bit programs, you can install another perl

    This assumes you're not dealing with some broken .msi file which edits the registry, but just a .zip file

Re: Install Perl64 *AND* Perl32
by dasgar (Priest) on Mar 15, 2012 at 17:41 UTC

    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.

Re: Install Perl64 *AND* Perl32
by tokpela (Chaplain) on Mar 15, 2012 at 22:34 UTC

    I had a similar frustration when I installed ActiveState 5.14.2 on my new work machine.

    Many of the PPM modules are not available and the PDK graphical Perl debugger does not run under Win64

    So I finally installed the 32-bit and haven't looked back. I still kept the 64-bit version on the machine but I never use it

    From the ActiveState documentation at:

    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:

    • Windows x64: C:\Perl64
    • Windows x86: C:\Perl


      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.

      My sincere thanks to everyone that responded, I appreciate the help!



        I wonder how PPM will distinguish between the two.

        PPM is (at its heart) a perl script. It will install into whichever Perl installation is used to run it. So, if you do:

        path c:\perl32\bin\; ... ppm

        It will run under and install into the 32-bit version.

        If you do:

        path c:\perl64\bin\; ... ppm

        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:

        C:\test>assoc .pl .pl=Perl C:\test>ftype perl perl=c:\perl32\bin\perl.exe "%1" %* C:\test>assoc .pl64 .pl64=Perl64 C:\test>ftype perl64 perl=c:\perl64\bin\perl64.exe "%1" %* C:\test>set pathext;.pl64;.COM;.EXE;.BAT;.CMD;

        Then you can specify which perl is used for your perl scripts by giving them the appropriate extensions.

        With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
        Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
        "Science is about questioning the status quo. Questioning authority".
        In the absence of evidence, opinion is indistinguishable from prejudice.

        The start of some sanity?

Re: Install Perl64 *AND* Perl32
by bulk88 (Priest) on Mar 18, 2012 at 04:22 UTC
    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.
      Might also want to research if you can change the prompt template on windows, unix style

      Or, have each of the batch scripts specify a different foreground/background colour combo for the console (using the 'color' comand):
      set PATH=C:\myperlversion\bin;%PATH% color 37

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://959776]
Approved by Corion
Front-paged by Corion
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (2)
As of 2018-05-22 01:02 GMT
Find Nodes?
    Voting Booth?