Какую версию Perl мне следует использовать в Windows? [закрыто]


98

Win32.perl.org веб - сайт содержит ссылки на несколько дистрибутивов Perl для MS Windows.

Я долгое время использую ActivePerl от ActiveState, но недавно перешел на Strawberry Perl .

IMHO Единственное преимущество Active Perl перед Strawberry Perl заключается в том, что он поставляется с Perl Tk, что означает простоту установки графического отладчика Devel :: ptkdb . В остальном, я думаю, Strawberry Perl обладает всеми преимуществами.


После этого поста я начал переупаковывать Strawberry Perl множеством дополнительных модулей, включая Moose, Dancer и Padre. Читатели, возможно, захотят принять во внимание и это: dwimperl.com
szabgab

Ответы:


80

Strawberry Perl становится все лучше и лучше. Одна проблема, с которой я неоднократно сталкивался с ActiveState, заключается в том, что мои модули иногда не устанавливаются, потому что мне нужно обновить основной модуль, но они не позволяют этого. Таким образом, любой, кто не использует Windows, может использовать мой код, но они не могут этого сделать с Perl ActiveState.

ActiveState также имеет очень хитрую систему сборки, которая часто не может точно сообщить, почему модуль не удалось собрать. Я так устал переписываться по электронной почте и просить эту информацию, что в конце концов сдался. Я хочу, чтобы мой код запускался в Windows, но если ActiveState не предоставляет мне эту информацию и не дает мне возможности обновить основные модули, я просто не могу его использовать. Некоторые из моих модулей НЕ имеют сбоев сборки в любой операционной системе, кроме модулей с ActiveState Perl. Поддержите Strawberry Perl и не беспокойтесь об ActiveState.

Если ActiveState исправил свою систему сборки и свою политику «не обновлять базовые модули», к этому стоит вернуться.


8
Можно обновить основные модули с AS Perl 5.8.8 build 518 (выпущенного в январе 2007 г.). Они также обновили свою систему сборки CPAN в 2008 году, но я не знаю точно, когда.
Александр Черный

1
Strawberry Perl великолепен. Однако, если вы используете MSys Bash в качестве оболочки, существует известная проблема , связанная с тем, что такие команды, как cpanне работают.
Colonel Panic

30

Не существует единственно лучшего дистрибутива Perl. Vanilla Perl (перемещаемый, распространяемый Perl) и более удобный для разработчиков Strawberry Perl обладают значительным потенциалом.

Однако есть очень веская причина, по которой ActivePerl так популярен. Преимущества в основном заключаются в простоте развертывания для ваших конечных пользователей (для использования их диспетчера пакетов PPM не нужен компилятор). ActiveState PDK (Perl Development Kit) также является очень хорошим способом упаковать полный двоичный файл Windows, который не требует установки Perl на машине пользователя.

К сожалению, многие очень хорошие модули CPAN (например, привязки Perl для OpenSSL) недоступны через репозиторий ActiveState.

Как и в большинстве случаев, вы должны делать свой выбор на основе того, какой дистрибутив лучше всего соответствует вашим потребностям.


PerlApp действительно кажется полезным инструментом (я не сравнивал его с Par :: Packer), но PDK, в котором он входит, стоит 300 долларов.
Нейт Гленн

17

Я в основном использую ActivePerl, но мне очень нравится, куда движется Strawberry Perl. Мне нравится, что оболочка cpan «просто работает», и мне не нужно прыгать через кучу обручей, чтобы установить модули XS. (например, ExtUtils :: FakeConfig, хотя это менее необходимо в более поздних сборках ActivePerl.) Я также взволнован возможностью Perl на флэшке. Версия Portable Perl для разработчиков уже довольно удобна.

Я согласен с тем, что основным преимуществом ActivePerl является Tk из коробки, но учтите, что с версии 5.10 ActivePerl больше не поставляется с Tk по умолчанию. Вместо этого он поставляется с Tkx.


13

Будущее определенно за Strawberry Perl. Что бы вы ни выбрали (и эта проблема не уникальна для Windows), если вы распространяете конечный результат на другие машины, вам нужно будет быть осторожным в отношении предоставленных вами инструкций по установке / установке.


6

Strawberry Perl больше похож на Perl на * nix. Он поставляется с MinGW, который может быть полезен сам по себе. Модули Perl также можно установить с помощью ppm или cpan.


1
Примечание: если вы устанавливаете mingw вместе с клубничным Perl, имейте в виду, что клубничный Perl может использовать разные версии приложений minsys. У меня были серьезные проблемы с получением клубничного Perl для сборки Win32 :: OLE и других модулей, пока я не удалил mingw со своего пути.
Роберт П.

Если вам действительно нужен Perl для Windows, как Perl для * nix, установите SUA / SFU (не устанавливайте Perl, который идет в комплекте) и используйте Perl Debian Interix / pkgsrc-interix.
MkV

4

Я предпочитаю Strawberry Perl. Во-первых, он устанавливает gcc как часть mingwin, так что вы можете установить его прямо из CPAN.

Некоторое время я использовал Perl ActiveState, но у меня было много нестыковок при переходе с одной машины на другую, несмотря на то, что они были (по-видимому) одинаково настроены. Плохой вкус оставила и их упаковка модуля PPM. Это делает управление пакетами чрезвычайно простым, но вы полагаетесь на них для обновления PPM после обновлений CPAN. Кроме того, PPM ни в коем случае не является полным содержимым CPAN; В последний раз, когда я использовал ActivePerl, мне было трудно найти все необходимые модули, а те, которые были там, часто были старой версии.


2
Мне любопытно, что оценило голосование против.
gWaldo

3

Я всегда использую Cygwin (xterms с bash намного лучше, чем cmd windows) и Perl, который идет с ним. Я устанавливаю модули Perl с оболочкой CPAN (команда "cpan"); работает нормально.


3

ActiveState Perl долгое время считался де-факто Windows Perl. Хотя у него много недостатков, и многие из нас используют что-то еще, он остается очень популярным. Если бы вы создавали код Perl для выполнения на машине с Windows (кроме вашей), я бы подумал о том, чтобы написать его с прицелом на значение по умолчанию (или по умолчанию, как я мог его получить) AS Perl, выполняющий его. Что-нибудь еще, и вы создаете барьеры для входа для других, пытающихся использовать ваше приложение позже.


AFAIK, PAR pp отлично работает со Strawberry, что является большим преимуществом с точки зрения распространения ваших собственных приложений, потому что IIUC вам понадобится OEM-лицензия, чтобы иметь возможность распространять скомпилированные приложения pp, если вы используете их библиотеки DLL.
Sinan Ünür

3
@Sinan, ваше утверждение о лицензировании ActivePerl и PAR неверно. См. Пункт 4 лицензии The license also allows You to redistribute parts of the Package as part of an application generated by wrapping tools such as PAR, PerlApp or Perl2Exe. However, this License does not allow You to (a) redistribute the Package as a whole, (b) use its parts to create a language distribution, or (c) redistribute the PerlScript, Perl for ISAPI or PerlEx components with Your application. activestate.com/activeperl/license
daotoad

@daotoad Хмммм ... Могу поклясться, что более ранняя версия не позволяла этого, но я даже не уверен, правильно ли я помню. Спасибо за исправление.
Sinan Ünür

2

У меня были серьезные проблемы со Strawberry, и я чувствовал, что поддержки нет. Хорошие люди из PerlMonks не смогли мне помочь, и я сдался. Если эта страница вызывает у вас некоторую неуверенность, вот вам ответ.


1

Код, который я пишу, попадает в список компаний из списка Fortune 500, поэтому «корпоративное» ощущение полезно. До сих пор я использовал ActivePerl, и он отлично работал как для внутренних инструментов, так и для распространения среди крупных клиентов.


1

Я использую Active State Perl 5.014, который работает нормально.

Проблема в том, что у него нет последней версии Padre (IDE, среда отладки).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.