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

Ian*_*ing 16 perl perl-core

根据我的理解,Perl传统上只包含核心功能,人们安装额外的库来做各种有用的(有时是非常基本的)事情.但是在某些时候,默认情况下会出现Perl附带的"核心库" - 因此您可以使用这些库而无需安装它们.

来自Python我很好奇这是如何管理的.特别:

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

dax*_*xim 16

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

  • 此外,由于5.8.9 Perl包含一个命令行工具'核心列表',它可以告诉您每个Perl版本包含哪个版本的核心模块.例如:corelist -a ExtUtils :: MakeMaker (4认同)
  • 5.010001**是**5.10.1. (2认同)