Почему некоторые основные модули Perl также доступны на CPAN?

Например, я считаю, что модуль Encode считается основным модулем и поставляется с каждой копией Perl. У него есть собственная страница на Perldoc:

https://perldoc.perl.org/Encode.html

... но он также доступен на CPAN:

http://search.cpan.org/~dankogai/Encode-2.92/Encode.pm

При беглом просмотре двух документов кажется, что они содержат один и тот же текст. Так зачем ставить в обоих местах? Это просто для того, чтобы CPAN можно было использовать для поиска документации по «любому модулю Perl»?


person Stephen    schedule 03.10.2017    source источник
comment
То, что он входит в состав установки Perl по умолчанию, не делает модуль менее модульным. Основные модули также меняются со временем.   -  person Matt Jacob    schedule 04.10.2017
comment
Одна хорошая вещь в этом заключается в том, что некоторая информация в стиле CPAN сразу же появляется, например, источник. Гораздо сложнее выкопать из дистрибутива perl.   -  person zdim    schedule 04.10.2017


Ответы (2)


Такие модули называются модулями «двойной жизни».

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

  • Таким образом, разработчики могут выпускать исправления и обновления для модуля по другому графику (например, чаще), чем сам perl.

  • Или, может быть, модуль был запущен на CPAN, а позже был добавлен в дистрибутив perl (например, потому что этого требует модуль в цепочке инструментов).

  • Или, может быть, модуль находится в процессе удаления из дистрибутива Perl.

person ikegami    schedule 04.10.2017
comment
Возможно, добавить аннотацию о том, что некоторые модули имеют двойную жизнь, но затем иногда удаляются из ядра (например: CGI), and maybe something about corelist` о том, как проверить, является ли модуль ядром? - person stevieb; 04.10.2017
comment
@stevieb, упомянул бывшего. Последнее может быть связанной темой, но не имеет ничего общего с вопросом. Если кто-то еще не задавал этот вопрос, не стесняйтесь задать его (и при желании ответить на него) самостоятельно. - person ikegami; 04.10.2017
comment
Есть ли простой способ увидеть расписание, когда определенные модули были сделаны основными / удалены из ядра? - person Stephen; 04.10.2017
comment
Попался. Что ж, в любом случае мой ответ выглядит так: corelist. - person Stephen; 04.10.2017

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

Например, версии Encode поставлялись с некоторыми версиями perl:

Perl      Encode
v5.22.4   2.72_01
v5.24.2   2.80_01
v5.26.1   2.88

(получено с помощью corelist -a Encode). Любой из них можно легко обновить до последней версии Encode 2.92.

person A. Ferreira    schedule 03.10.2017