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.
perlreloc.bat:
@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
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|