Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask

Re: Multiple Strawberry Perl Versions under Windows

by VinsWorldcom (Parson)
on Oct 10, 2012 at 02:30 UTC ( #998116=note: print w/replies, xml ) Need Help??

in reply to Multiple Strawberry Perl Versions under Windows

I use 'junction' in a batch script to achieve this. I installed the latest Strawberry Perl (5.16.1) for Windows 7 in the default directory. Then I just renamed the directory to 'strawberry-5-16'. I created a few new directories in the root:

cd c:\ mkdir strawberry-5-10 mkdir strawberry-5-12 mkdir strawberry-5-14

I then grabbed the ZIP versions of the associated Strawberry Perl versions corresponding to the directories and unzipped them directly into their respective directories.

Finally, to use the Perl I want, I just use the following batch script 'perlreloc.bat'. For example, if I want to use 5.16, I just type:

perlreloc 5-16

The script basically creates a junction (like a link in *nix) so c:\strawberry actually points to c:\strawberry-5-16 (in the above example). With this way, you don't need to use the Strawberry relocation script and older versions of Strawberry that don't support relocation will still work because when activated with the batch file, they appear to be running in their default directory - c:\strawberry.


@echo off REM REM Help REM if {%1}=={/?} goto HELP if {%1}=={--help} goto HELP REM REM Check args REM if not {%2}=={} goto ERROR REM ------------------------------------------------------- if {%1}=={} ( junction c:\strawberry perl -e "print \"$] \@ $^^X\n\"" ) else ( if exist c:\strawberry-%1\perl\bin\perl.exe ( junction -d c:\strawberry junction c:\strawberry c:\strawberry-%1 perl -e "print \"$] \@ $^^X\n\"" ) else goto ERROR ) goto END REM ------------------------------------------------------- :ERROR echo %0: Parameter format not correct goto END :HELP echo. echo %0 manages different versions of Perl. echo. echo USAGE: echo. echo %0 ^<Perl_version_number^> echo. echo Where ^<Perl_version_number^> is one of the following: echo. for /f "tokens=1,* delims=-" %%i in ('dir /b c:\strawberry-*') do @if +exist c:\strawberry-%%j\perl\bin\perl.exe echo %%j echo. :END

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://998116]
What's the matter? Cat got your tongue?...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (1)
As of 2017-03-26 03:08 GMT
Find Nodes?
    Voting Booth?
    Should Pluto Get Its Planethood Back?

    Results (313 votes). Check out past polls.