我应该将核心模块放在Makefile.PL的PREREQ_PM部分吗?

sid*_*com 7 perl makefile perl-module prerequisites

我应该只将非核心模块放在Makefile.PL的PREREQ_PM部分中,还是应该将核心模块放在那里?

amo*_*mon 14

是的,您应该指定所有依赖项:Perl Core永远不会被修复.核心模块一直在添加或删除(在弃用过程之后).指定所有依赖项...

  • ...将使您的程序在将来从已从Core移除模块的perls中工作.它仍然可以从CPAN获得.例如,Term::UI自v5.9.5起是一个Core模块,但在v5.19.0中被删除.

  • ...将断言安装了足够高的核心模块版本.有些模块随着时间的推移而发生了很大变化,很容易忘记五年前并非所有模块都可用.

  • ...将使你的程序在没有将模块包含到Core中的旧的perls上工作,但仍然可以使用它.

另一方面,这些可能是非常小的收益.如果你忘记指定像Carp依赖这样的中央模块,那么什么都不会破坏.

请记住:Core中包含模块有三个原因:

  • Perl的核心内容,strict不会被删除.
  • 下载和安装CPAN模块所需的东西.这包括文件系统处理.这里偶尔会发生变化.
  • 历史悠久的残酷.Pleeease抛出CGI.pm ;-)

提示:使用该corelist工具Module::Corelist查看perl版本中可用的模块版本.