为什么一些核心 Perl 模块也可以在 CPAN 上使用?
Why are some core Perl modules also available on CPAN?
例如,我认为 Encode 模块被认为是核心模块,并且随每个 Perl 副本一起提供。它在 Perldoc 上有自己的页面:
https://perldoc.perl.org/Encode.html
...但在 CPAN 上也可用:
http://search.cpan.org/~dankogai/Encode-2.92/Encode.pm
略读两份文件,似乎包含相同的文字。那么为什么要把它放在两个地方呢?是否只是为了让 CPAN 可用于在 "any Perl module" 上查找文档?
同时在 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。
这样的模块被称为 "dual-life" 模块。
因此用户可以升级模块而不升级perl
本身。
因此开发人员可以按照与 perl
本身不同的时间表(例如更频繁地)发布模块的修复和更新。
或者模块可能在 CPAN 上启动,后来被添加到 perl
发行版(例如,因为工具链中的模块需要它)。
或者该模块可能正在从 Perl 发行版中删除。
例如,我认为 Encode 模块被认为是核心模块,并且随每个 Perl 副本一起提供。它在 Perldoc 上有自己的页面:
https://perldoc.perl.org/Encode.html
...但在 CPAN 上也可用:
http://search.cpan.org/~dankogai/Encode-2.92/Encode.pm
略读两份文件,似乎包含相同的文字。那么为什么要把它放在两个地方呢?是否只是为了让 CPAN 可用于在 "any Perl module" 上查找文档?
同时在 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。
这样的模块被称为 "dual-life" 模块。
因此用户可以升级模块而不升级
perl
本身。因此开发人员可以按照与
perl
本身不同的时间表(例如更频繁地)发布模块的修复和更新。或者模块可能在 CPAN 上启动,后来被添加到
perl
发行版(例如,因为工具链中的模块需要它)。或者该模块可能正在从 Perl 发行版中删除。