Perl的核心库是如何管理的?

时间:2010-06-03 16:27:55

标签: perl perl-core

从我的理解Perl传统上只包含核心功能,人们安装额外的库来做各种有用的(有时是非常基本的)事情。但是在某些时候,默认情况下会出现Perl附带的“核心库” - 所以你可以在不安装它们的情况下使用这些库。

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

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

1 个答案:

答案 0 :(得分:16)

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