我正在Perl中编写程序员的文本编辑器(是另一个),名为Kephra,当然它也是一个CPAN模块,与Module::Install捆绑在一起。最近我看到Module::Build已进入核心,所以如果我切换,我可以减少依赖。还有其他原因需要转换吗?
答案 0 :(得分:6)
我们在小组中使用Module::Build。
主要原因是 Easy Extensibility 。
Module :: Build允许您通过子类化在纯Perl中完成构建过程。如果您想使用Module::Install做更多事情,您必须了解Makefile的工作原理,AFAIK。既然你可能已经知道Perl,这可能是一个优势。
正如你所说,使用Module :: Build会删除对外部make
程序的依赖,这可以被视为一件好事。
然而,我能想到的主要缺点是:
perl Makemaker.PL; make; make install
范例,可以通过改为Build.PL
而被抛弃。希望这不是什么大不了的事。尽管如此,我仍然建议Module :: Build只是为了可扩展性。如果这对您来说不是问题,那么最好坚持使用Module :: Install。
答案 1 :(得分:5)
嗯,Module::Build
是一个非常好的模块,它应该是ExtUtils::MakeMaker
的替代品,也就是说,用Build.PL替换Makefile.PL,它会生成Build而不是一个Makefile。它也意味着“简单的事情应该保持简单,艰难的事情应该是可能的”。
Module::Install
采用不同的方法生成Makefile。
此外,不要忘记并非每个人都运行最新版本的所有内容: - )
我不记得这些模块的任何比较,但我认为您可以从Module::Build
和Module::Install
各自的cpanratings页面找到一些内容。
答案 2 :(得分:5)
在"Which framework should I use to write modules?"
之前,咀嚼片已经被咀嚼了一下吐出反刍后,我决定和Module::Build一起去,但显然可能有不同的答案! (虽然到目前为止我对M :: B感到满意。)