当前位置:  开发笔记 > 编程语言 > 正文

我应该使用Module :: Install还是Module :: Build?

如何解决《我应该使用Module::Install还是Module::Build?》经验,为你挑选了3个好方法。

我正在写在Perl程序员的文本编辑器(是另一个)呼吁Kephra,这也是理所当然的CPAN模块,并捆绑模块::安装.最近我看到Module :: Build已进入核心,所以如果我切换,我可以减少依赖.是否有其他原因要切换?



1> Adam Bellair..:

我们在组中使用Module :: Build.

主要原因是Easy Extensibility.

Module :: Build允许您通过子类化在纯Perl中完成构建过程.如果您想使用Module :: Install做更多事情,您必须了解Makefile如何工作,AFAIK.既然你可能已经知道Perl,这可能是一个优势.

正如您所说,使用Module :: Build消除了对外部make程序的依赖,这可以被视为一件好事.

但是,我能想到的主要缺点是:

虽然Module :: Build已经成为核心,但不是每个人都会使用最新版本的Perl.对于使用旧版本核心的用户,您将创建一个新的依赖项.

许多退伍军人(不一定是Perl人)习惯于这种perl Makemaker.PL; make; make install范式,并且可以通过Build.PL反而被抛弃.希望这不是什么大不了的事.

Module :: Build在其功能发生变化时偶尔会破坏我们的构建,因为文档没有涵盖我们正在使用的边缘案例.边缘情况随后被更改并记录,但我们必须重新编码我们的子类以使我们的构建再次工作(这在我们最近从0.2808升级到0.3时发生).

尽管如此,我仍然建议Module :: Build只是为了可扩展性.如果这对您来说不是问题,那么最好坚持使用Module :: Install.



2> mat..:

嗯,这Module::Build是一个非常好的模块,它应该是替代品ExtUtils::MakeMaker,即用Build.PL替换Makefile.PL,它生成Build而不是Makefile.它也意味着"简单的事情应该保持简单,艰难的事情应该是可能的".

Module::Install 采用不同的方法并生成Makefile.

另外,不要忘记不是每个人都运行最新版本的一切:-)

我不记得这些模块的任何比较,但我认为你可以找到一些东西Module::Build,并Module::Install各自cpanratings页面.



3> draegtun..:

在"我应该使用哪个框架来编写模块?"之前已经对这个问题进行了一些咀嚼.

在吐出反刍后,我决定使用Module :: Build,但显然可能有不同的答案!(尽管到目前为止我对M :: B感到满意).

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有