2012-03-07 8 views
0

Я провел некоторое исследование, и, похоже, у ActivePerl возникли проблемы с более ранними версиями его продукта с некоторыми модулями CPAN, которые не установлены должным образом. Тем не менее, я запускаю версию 5.14.x, и у меня не было никаких проблем.Насколько совместим ActivePerl с модулями CPAN?

По некоторым цитаты я видел:

  1. ActivePerl является 100% совместим с эталонным распределением Perl.
  2. Код, протестированный с помощью ActivePerl, будет запущен на любой установке Perl с установленными соответствующими расширениями.

Я предполагаю, что первое утверждение относится к стандартным модулям, которые вы получаете с установкой Perl, а для второго - я не уверен, что они говорят?

В любом случае, есть ли способ узнать, насколько совместим ActivePerl с текущими модулями CPAN или что-то, что неизвестно? Я просто не хочу тратить время на это, только чтобы переключиться на что-то вроде Strawberry Perl в следующем месяце, чтобы избежать сбоев сборки модуля CPAN для более распространенных модулей.

Если ActivePerl совместим с 80% и выше с модулями CPAN, я бы чувствовал себя более комфортно в использовании, но я не мог найти никакой информации об этом.

+0

У ActivePerl есть собственный менеджер пакетов (ppm) для загрузки модулей. Интересно, что в своем репозитории имеется только выбор модулей CPAN. Однако это может быть спорным. – TLP

ответ

3

Я сомневаюсь, что общая статистика будет полезной. В целом я ожидал бы, что все модули «чистого перла» будут работать более или менее из коробки. Имейте в виду, однако, что некоторые модули perl действительно являются интерфейсами для разделяемых библиотек нижнего уровня linux/unix (dll в терминах Windows), где доступность менее определенна. По моему опыту (написав несколько приложений perl, размещенных в Windows, по моим советам) большинство вещей будут работать и/или довольно легко работать, и как ActiveState, так и Strawberryperl, похоже, имеют достойную поддержку для большинства распространенных модулей.

+0

Хорошо, это приемлемо. Получение некоторого вклада с большим опытом в этом, чем у меня, будет достаточным для статистики. –

+0

Лично я считаю, что perl предлагает очень хорошую поддержку Windows, а для платформ, где собственная (высокопроизводительная скомпилированная) библиотека не поддерживается, Perl довольно часто предлагает реализацию «чистого перла», которая отлично работает, хотя может быть немного медленнее. Но сам Perl довольно быстрый, так что обычно это не большая проблема (в зависимости от того, что вы делаете, конечно). –

3

Первое утверждение не относится к модулям вообще. В нем говорится, что ActivePerl не является на основе Perl, его является Perl. Таким образом, все, что будет работать на Perl, также будет работать на ActivePerl.

Это также означает, что все модули на CPAN совместимы с ActivePerl, поскольку ActivePerl является Perl.

Независимо от того, совместим ли модуль с Windows, это совершенно другой вопрос, и на него можно ответить только по модулю.


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