2012-04-02 15 views
9

Nie jestem nowy w Perlu, ale ten problem wprowadza mnie w błąd.Czy mogę używać Perl truskawek i Perl ActiveState jednocześnie na jednym komputerze?

Raz użyłem do usunięcia mojego perl ActiveState, a wszystkie zainstalowane moduły zostały utracone. Teraz bardzo ostrożnie podchodzę do tego rodzaju problemów. Z jakiegoś powodu chcę używać Strawberry Perl teraz, gdy używam ActiveState Perl.

Czy spowoduje to problemy ze zgodnością? Czy to jest wskazane?

Odpowiedz

2

Można użyć dwóch (wielu) różnych wersji perla na raz.

Ustaw zmienną PATH tak, aby zawierała pierwotną ścieżkę perla (ścieżka do perl.exe), aby upewnić się, że uruchamiasz poprawny plik perl po uruchomieniu programu za pomocą skryptu perl.

Można użyć PerlBrew: http://perlbrew.pl/ (lub innych modułów), aby pomóc w utrzymaniu wielu instalacji perla w komputerze.

Jest on dostępny na oknach: http://code.activestate.com/ppm/App-perlbrew/

Pozdrowienia,

+0

Wersja AS wymaga wersji Business Edition Perl. Dostępne jest teraz narzędzie [berrybrew] (https://github.com/dnmfarrell/berrybrew) dla Strawberry Perl. – flamey

5

To nie będzie problem, bo oba perl s będzie wyglądać w różnych katalogach dla modułów. Oznacza to, że wpisy @INC będą różne.

+0

Dziękujemy za wyjaśnienia! Jeśli więc na ścieżce środowiskowej Aktywny Perl Państwa ma pierwszeństwo i chcę użyć Strawberrya, to jak mam to zrobić? Czy podoba mi się słowo "Saiful" w skrypcie perla określającym #! C: \ strawberry \ perl \ bin \ perl? Czy jest jakieś bardziej zalecane rozwiązanie? Dziękuję Ci! –

3

Posiadam zarówno ActiveState, jak i Strawberry zainstalowane na moim Win7Pro. Moja kolejność zmiennych PATH decyduje o mojej preferencji Perla. Na przykład, za korzystanie ActiveState ustawić moją drogę do czegoś takiego:

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

Zawsze można to zmienić w skrypcie za pomocą shebang:

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

nadzieję, że to pomaga.

+0

Dziękujemy! To naprawdę pomaga. Spróbuję teraz. –

+0

Jeśli dobrze pamiętam, shebang jest ignorowany w oknach. Mam rację? – user1126070

+0

Jest ignorowany przez okna, ale kiedy domyślny perl pobiera parsowanie pliku, następnie przekazuje kontrolę do programu wspomnianego w linii Shebang. – justintime

0

Znalazłem inne rozwiązanie. Możesz osadzić swój kod perl w pliku wsadowym Windows. W ten sposób możesz ustawić zmienne env przed wykonaniem skryptu perl lub dołączyć ścieżkę do modułu.

@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