gpt4 book ai didi

perl - 我应该使用哪个框架来编写模块?

转载 作者:行者123 更新时间:2023-12-03 11:43:46 25 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改进这个问题?更新问题,以便 editing this post 提供事实和引用来回答它.

6年前关闭。




Improve this question




什么是编写模块的最佳框架——ExtUtils::MakeMaker (h2xs) 或 Module::Build ?

最佳答案

注意 这个建议已经过时了。 Module::Build has been removed from the Perl core但作为 CPAN 模块存在。优点和缺点仍然存在,我对 MakeMaker 的看法仍然存在。

作为 ExtUtils::MakeMaker 的前维护者,我喜欢推荐 Module::Build,因为 MakeMaker 是一个恐怖节目。 Module::Build 放在一起要好得多。但这些不是你关心的问题,我会提出我的“对你来说最不麻烦”的答案。

执行摘要:

因为 Module::Build 支持并不是 100% 通过 Perl 实现的,所以从 MakeMaker 开始。如果您想进行任何自定义,请切换到 Module::Build。由于它们的基本布局、选项和界面几乎相同,这将是无痛的。尽管看起来很诱人,但请避免使用 Module::Install。

幸运的是,Module::Build 可以模拟 MakeMaker,这对某些人有帮助,但如果您要进行任何自定义,则无济于事。见 Module::Build::Compat .

对于使用 Module::Build 的 CPAN 版本很好。现在已经在 CPAN 上构建了足够多的 Module::Build 东西,每个人都已经开始着手处理它了。

最后,新的 configure_requires 选项让 CPAN shell 在开始构建模块之前知道安装 Module::Build。不幸的是,只有最新的 CPAN shell 知道 configure_requires。

哦,无论你做什么都不要使用 h2xs(除非你正在编写 XS 代码……然后再考虑一下)。

MakeMaker 优点:

  • 与 Perl 一起提供并由 Perl 核心使用(因此它是积极的
    保持并将永远如此)
  • 一切都知道如何处理 Makefile.PL。
  • 大多数模块创作文档将涵盖 MakeMaker。
  • 使用 make(知道 make 的人可以调试和修补构建
    进程)

  • MakeMaker 缺点:
  • 需要make(想想Windows)
  • 难以定制
  • 更难定制和跨平台
  • 出错时很难调试(除非你懂 make)

  • 模块::构建优点:
  • 更容易定制/子类
  • 纯 Perl
  • 更容易调试(它是 Perl)
  • 可以通过多种方式模拟 MakeMaker
  • CPAN shell 将为您安装 Module::Build

  • 模块::构建缺点:
  • Module::Build 维护者(实际上是所有 Perl 工具链帮)讨厌它
  • 旧版本的 CPAN 客户端(包括 CPANPLUS)对 Module::Build 一无所知。

  • 模块::安装优点:
  • 流畅的界面
  • 捆绑本身,您有一个已知版本
  • 一切都知道如何处理 Makefile.PL

  • 模块::安装缺点:
  • 需要制作
  • 一直使用捆绑版本,容易受到外部损坏
  • 难以在其界面之外自定义
  • 与 MakeMaker 的胆量混为一谈,因此新的 MakeMaker 版本最终将打破它。
  • 不知道如何使用 v2 元规范生成 META 文件
    (越来越多的新工具出现问题)
  • 关于perl - 我应该使用哪个框架来编写模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73889/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com