16

据我了解,Perl 传统上只包含核心功能,人们安装额外的库来做各种有用的(有时是非常基本的)事情。但是在某些时候,出现了默认情况下随 Perl 提供的“核心库”——因此您可以在不安装它们的情况下使用这些库。

来自 Python,我很好奇这是如何管理的。具体来说:

  1. 图书馆是如何选择的?
  2. 这些库是否还有自己的版本号和发布时间表?
  3. 使用这些库时,您有什么样的向后兼容性保证?
  4. 在系统中升级或降级这些库是否常见?这是在系统范围内完成的还是更具体的?
  5. 如果有需要更改 API 的错误修复,这是如何发生的?
  6. 如何将功能添加到这些核心库中(如果有的话)?
4

1 回答 1

16
  1. 目前,只有引导/安装其他库所需的库才会进入核心列表
  2. 有些仅在 Perl git 存储库中。有些是 CPAN 和 repo 中的双重生命。有时错误会在 repo 中得到修复,并且更改会向后移植到 CPAN 版本。有时 CPAN 上有一个新版本,Perl 维护者将模块签入到 repo 中。
  3. 你可以依赖一个核心模块。在删除之前有一个非常长的弃用时间跨度,最近的突出示例是Switch.
  4. 打包者(例如为 Linux 发行版构建 RPM 的人)永远无法做到这一点。包含路径(@INC)的错误顺序不是他们的错,最后用 5.12 修复。这就是建议编译您自己的 perl 并且不要弄乱系统安装的原因。在 5.12 中,您应该只使用 CPAN 来安装核心模块的升级版本,并且它会附加安装到系统随附的模块中,但是由于新模块在包含路径中的旧模块之前,因此新模块当你use/require它时会加载一个。
  5. perlpolicy中列出。
  6. 编写功能并对其进行测试,记录事物,然后在 CPAN 上发布或分别让维护人员应用变更集。这伴随着对p5p的讨论。
于 2010-06-03T17:03:30.650 回答