Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris

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]
Discipulus s/silbing/whistle/ dunno from where this word was in my mind..
[Discipulus]: lost in time in space and in the meaning (rocky horror picture show)
[Corion]: Discipulus: Yeah, a short vacation on the Canary islands (Lanzarote). Always great to be in the warmth and sun, from a cold and rainy February here ;)
[Corion]: choroba: Yeah, you have to find a time for the regular skype (or whatever) meetup, I imagine that's hard
[choroba]: Lanzarote is great!
choroba went there year ago

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (7)
As of 2017-02-22 08:48 GMT
Find Nodes?
    Voting Booth?
    Before electricity was invented, what was the Electric Eel called?

    Results (325 votes). Check out past polls.