Какую версию Perl я должен использовать в Windows?

94

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

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

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

  • 0
    С этого поста я начал перепаковывать Strawberry Perl с множеством дополнительных модулей, включая Moose, Dancer и Padre. Читатели могут также подумать об этом: dwimperl.com
Теги:
debugging
strawberry-perl

11 ответов

75
Лучший ответ

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

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

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

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

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

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

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

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

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

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

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

12

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

6

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

  • 1
    Примечание: если вы устанавливаете mingw вместе с клубничным Perl, помните, что клубничный Perl может использовать разные версии приложений minsys. У меня были некоторые серьезные проблемы с получением клубничного Perl для сборки Win32 :: OLE и других модулей, пока я не удалил mingw со своего пути.
  • 0
    Если вам действительно нужен Perl в Windows, такой как Perl в * nix, установите SUA / SFU (не устанавливайте Perl, который входит в комплект) и используйте Perl Debian Interix / pkgsrc-interix.
3

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

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

  • 1
    Мне любопытно, что оценили отрицательное голосование.
3

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

2

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

2

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

  • 0
    AFAIK, PAR pp отлично работает со Strawberry, что является большим преимуществом с точки зрения распространения ваших собственных приложений, потому что IIUC вам потребуется лицензия OEM, чтобы иметь возможность распространять скомпилированные pp-приложения, если вы используете их DLL.
  • 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
Показать ещё 1 комментарий
1

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

0

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню