Могу ли я использовать Strawberry Perl и ActiveState Perl одновременно на одном компьютере? - PullRequest
9 голосов
/ 02 апреля 2012

Я не новичок в Perl, но эта проблема меня смущает.

Раньше я удалял свой Perl ActiveState один раз, и все установленные модули были потеряны. Так что теперь я очень осторожен с этим вопросом. По какой-то причине я хочу использовать Strawberry Perl сейчас, оставив ActiveState Perl в использовании.

Это вызовет проблемы совместимости? Желательно ли это?

Ответы [ 4 ]

5 голосов
/ 02 апреля 2012

Это не будет проблемой, так как оба perl будут просматривать разные каталоги для модулей. То есть, записи @INC будут другими.

3 голосов
/ 02 апреля 2012

Я держу ActiveState и Strawberry на моем Win7Pro.Мой порядок переменных PATH определяет мои предпочтения в Perl.Например, для использования ActiveState я установил свой PATH примерно так:

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

Вы всегда можете переопределить это в своем скрипте, используя shebang:

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

Надеюсь, это поможет.

2 голосов
/ 02 апреля 2012

Вы можете использовать две (много) разные версии perl одновременно.

Задайте в переменной PATH ваш основной путь perl (путь к perl.exe), чтобы убедиться, что вы используете правильный perl, когдавы запускаете программу с помощью perl script.pl.

. Вы можете использовать PerlBrew: http://perlbrew.pl/ (или другие модули), чтобы сохранить установку нескольких Perl на вашем компьютере.

Этодоступно на окнах: http://code.activestate.com/ppm/App-perlbrew/

С уважением,

0 голосов
/ 11 апреля 2012

Я нашел другое решение для этого. Вы можете встроить свой Perl-код в пакетный файл Windows. Таким образом, вы можете установить переменные env перед выполнением скрипта perl или указать путь к модулю.

@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
...