2012-04-02 27 views

Antwort

2

Sie könnten zwei (viele) verschiedene Perl-Versionen gleichzeitig verwenden.

Setzen Sie Ihre PATH-Variable so, dass sie Ihren primären Perl-Pfad (Pfad zu perl.exe) enthält, um sicherzustellen, dass Sie das richtige Perl ausführen, wenn Sie ein Programm mit perl script.pl starten.

Sie könnten PerlBrew: http://perlbrew.pl/ (oder andere Module) verwenden, um mehrere Perl-Installation in Ihrem Computer zu halten.

Es ist an den Fenstern zur Verfügung: http://code.activestate.com/ppm/App-perlbrew/

Grüße,

+0

AS Version erfordert Business Edition Perl. Es gibt jetzt [berrybrew] (https://github.com/dnmfarrell/berrybrew) Werkzeug für Strawberry Perl. – flamey

5

Dies wird kein Problem sein, da beide die perl s bei verschiedenen Verzeichnissen für Module aussehen wird. Das heißt, die @INC Einträge werden unterschiedlich sein.

+0

Danke für Ihre Klarstellungen! Wenn also im Umgebungs-Pfad Active State perl Priorität hat und ich Strawberry one verwenden möchte, wie soll ich das dann machen? Darf ich sagen, was 'Saiful' gesagt hat, indem Sie im Perl-Skript #! C: \ strawberry \ perl \ bin \ perl angeben? Oder gibt es eine bessere Lösung? Vielen Dank! –

3

Ich halte ActiveState und Strawberry auf meinem Win7Pro installiert. Die Reihenfolge meiner PATH-Variablen bestimmt meine Perl-Präferenz. Z. B, für Activestate verwenden ich mein PATH etwas wie folgt aus:

C:\Perl64\bin;C:\strawberry\perl\bin 

Sie können jederzeit in Ihrem Skript außer Kraft setzen diese shebang mit:

#!C:\strawberry\perl\bin\perl 

Hoffnung, das hilft.

+0

Danke! Das hilft wirklich. Ich werde das jetzt versuchen. –

+0

Wenn ich mich richtig erinnere, wird der Shebang in Windows ignoriert. Hab ich recht? – user1126070

+0

Es wird von Windows ignoriert, aber wenn das Standard-Perl die Datei analysiert, übergibt es die Kontrolle an das Programm, das in der Shebang-Zeile erwähnt wird. – justintime

0

Ich habe eine andere Lösung dafür gefunden. Sie könnten Ihren Perl-Code in eine Windows-Batch-Datei einbetten. Auf diese Weise können Sie env-Variablen festlegen, bevor Sie Ihr Perl-Skript ausführen oder Ihren Modulpfad einschließen.

@echo off 
cd %TEMP% 
set perl_bindir=C:\strawberry\perl\bin 
set module_dir=C:\my_perl_modules 
set path=%perl_bindir%;%path% 

echo Launching %0 perl script 

%perl_bindir%\perl.exe -I %module_dir% -x -S %0 %* 
goto endofperl 

#!perl -w 

use strict; 
print "Hello World\n"; 

__END__ 
:endofperl