2012-04-02 2 views
9

저는 Perl에 익숙하지 않습니다. 그러나이 문제는 저를 혼란스럽게합니다.하나의 컴퓨터에서 Strawberry Perl과 ActiveState Perl을 동시에 사용할 수 있습니까?

ActiveState Perl을 한 번 삭제하면 설치 한 모듈이 모두 손실됩니다. 그래서 지금은 이런 종류의 문제에 매우주의를 기울이고 있습니다. 몇 가지 이유로 ActiveState Perl을 계속 사용하면서 Strawberry Perl을 사용하고 싶습니다.

이로 인해 호환성 문제가 발생합니까? 그것은 권위가 있습니까?

답변

2

한 번에 두 가지 (여러) 다른 perl 버전을 사용할 수 있습니다.

perl script.pl을 사용하여 프로그램을 시작할 때 올바른 perl을 실행하고 있는지 확인하기 위해 기본 perl 경로 (perl.exe 경로)를 포함하도록 PATH 변수를 설정하십시오.

컴퓨터에 여러 개의 perl 설치를 유지할 수 있도록 PerlBrew : http://perlbrew.pl/ (또는 다른 모듈)을 사용할 수 있습니다. 이것은 모두 perl의 모듈에 대한 서로 다른 디렉토리에 보이는 것 같은 문제가되지 않습니다

+0

AS 버전에는 Business Edition Perl이 필요합니다. Strawberry Perl에는 [berrybrew] (https://github.com/dnmfarrell/berrybrew) 도구가 제공됩니다. – flamey

5

http://code.activestate.com/ppm/App-perlbrew/

감사합니다 :

그것은 창에서 사용할 수 있습니다. 즉, @INC 항목이 다릅니다.

+0

설명해 주셔서 감사합니다. 환경 경로 Active State perl이 우선 순위이고 Strawberry를 사용하고 싶다면 어떻게해야합니까? #! C : \ strawberry \ perl \ bin \ perl을 지정하는 perl 스크립트에서 'Saiful'이 말한 것처럼 할 수 있습니까? 또는 더 자세한 해결책이 있습니까? 고맙습니다! –

3

ActiveState와 Strawberry를 모두 내 Win7Pro에 설치해 둡니다. 내 PATH 변수 순서가 내 Perl 환경 설정을 결정합니다. 예컨대,은 ActiveState를 사용하는 나는 이런 식으로 내 PATH를 설정합니다

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

당신은 항상 오두막을 사용하여 스크립트에서이 메소드를 오버라이드 (override) 할 수 있습니다이 도움이

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

희망을.

+0

고마워요! 이것은 정말로 도움이됩니다. 나는 이것을 지금 시도 할 것이다. –

+0

내가 정확히 기억하고 있다면 창에서 시번이 무시됩니다. 나 맞아? – user1126070

+0

윈도우에서는 무시되지만, 기본 펄이 파일을 구문 분석하면 셰바 라인에 언급 된 프로그램에 제어권을 넘겨줍니다. – justintime

0

다른 해결책이 있습니다. 펄 코드를 윈도우 배치 파일에 삽입 할 수 있습니다. 이렇게하면 perl 스크립트를 실행하기 전에 env 변수를 설정하거나 모듈 경로를 포함시킬 수 있습니다.

@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 
관련 문제