2012-04-02 16 views
9

Tôi không quen với Perl, nhưng loại vấn đề này làm tôi bối rối.Tôi có thể sử dụng Strawberry Perl và ActiveState Perl đồng thời trong một máy tính không?

Tôi đã từng xóa ActiveState Perl một lần và tất cả các mô-đun đã cài đặt bị mất. Vì vậy, bây giờ tôi rất cẩn thận với loại vấn đề này. Vì lý do nào đó, tôi muốn sử dụng Strawberry Perl ngay bây giờ trong khi vẫn sử dụng ActiveState Perl.

Điều này có gây ra sự cố tương thích không? Nó có được khuyến khích không?

Trả lời

2

Bạn có thể sử dụng hai (nhiều) phiên bản perl khác nhau cùng một lúc.

Đặt biến PATH của bạn để bao gồm đường dẫn perl chính (đường dẫn đến perl.exe) để chắc chắn rằng bạn đang chạy đúng perl khi bạn bắt đầu một chương trình với perl script.pl.

Bạn có thể sử dụng PerlBrew: http://perlbrew.pl/ (hoặc các mô-đun khác) để giúp giữ nhiều cài đặt perl trong máy tính của bạn.

Nó có sẵn trên cửa sổ: http://code.activestate.com/ppm/App-perlbrew/

Kính trọng,

+0

Phiên bản AS yêu cầu Ấn bản dành cho doanh nghiệp Perl. Hiện tại có công cụ [berrybrew] (https://github.com/dnmfarrell/berrybrew) dành cho Strawberry Perl. – flamey

5

này sẽ không là một vấn đề như cả perl s sẽ nhìn vào các thư mục khác nhau cho mô-đun. Tức là, các mục nhập @INC sẽ khác nhau.

+0

Cảm ơn bạn đã làm rõ! Vì vậy, nếu trong con đường môi trường Active State perl có ưu tiên và tôi muốn sử dụng Strawberry một, sau đó làm thế nào tôi nên làm gì? Tôi có thể làm như những gì 'Saiful' đã nói, trong kịch bản perl chỉ định #! C: \ strawberry \ perl \ bin \ perl? Hoặc có giải pháp nào được thông báo hơn không? Cảm ơn bạn! –

3

Tôi giữ cả ActiveState và Strawberry được cài đặt trên Win7Pro của mình. Lệnh biến PATH của tôi quyết định tùy chọn Perl của tôi. Ví dụ, sử dụng ActiveState tôi đặt PATH của tôi để một cái gì đó như thế này:

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

Bạn luôn có thể ghi đè này trong kịch bản của bạn sử dụng công việc:

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

Hope this helps.

+0

Cảm ơn bạn! Điều này thực sự hữu ích. Tôi sẽ cố gắng này ngay bây giờ. –

+0

Nếu tôi nhớ lại chính xác thì shebang bị bỏ qua trong cửa sổ. Tôi có đúng không? – user1126070

+0

Nó bị bỏ qua bởi các cửa sổ, nhưng khi perl mặc định được phân tích cú pháp các tập tin sau đó nó sẽ vượt qua kiểm soát chương trình được đề cập trong dòng shebang. – justintime

0

Tôi đã tìm thấy giải pháp khác cho việc này. Bạn có thể nhúng mã perl của bạn vào một tập tin batch windows. Bằng cách này bạn có thể thiết lập các biến env trước khi thực thi kịch bản perl của bạn hoặc bao gồm đường dẫn mô-đun của bạn.

@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 
Các vấn đề liên quan