perl - 修复 Perl CPAN 模块 - 在哪里添加先决条件以及使用什么版本?

标签 perl perl-module cpan

当我发现缺少先决条件的 CPAN 模块存在问题时,我想通过 rt.cpan 提供补丁或通过 GitHub 提供拉取请求来提供帮助.

假设我发现 ACME::MadeUpName 有问题,缺少先决条件 Foo::Bard .我可以更新Makefile.PL吗?添加 ACME::MadeUpNamePREREQ_PM部分?还有其他地方我应该更新吗?

另外,我如何确定 Foo::Bard 的哪个版本?要求?我是否只使用最新的 CPAN 版本?

最佳答案

如果该版本使用 ExtUtils::MakeMaker 或 Module::Install,则 Makefile.PL 需要更新。如果它使用 Module::Build,则改为使用 Build.PL。但在很多情况下,Build.PL 或 Makefile.PL 文件不会是作者手动维护的,而是由某种发布管理工具构建的,例如 Dist::Zilla,在这种情况下最好更改工具的配置文件,而不是 Build.PL 或 Makefile.PL(无论如何都会被覆盖)。

如果您不确定,对于此类问题,只需提交不带补丁的错误报告可能会更容易。模块作者可能需要 30 秒的时间来修复 - 他们将最熟悉自己的构建工具和发布过程。

就版本而言,除非 ACME::MadeUpName 使用的 Foo::Bard 的特定功能是在更高版本中添加的,否则声明对 Foo::Bard 0 的依赖。 .也许稍后会证明 0太乐观了,需要更高的版本号,但到了那座桥就可以跨过去了。

关于perl - 修复 Perl CPAN 模块 - 在哪里添加先决条件以及使用什么版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23324548/

相关文章:

Perl IO::Socket::INET6::sockaddr_in6 重新定义错误

linux - 在 @INC 中找不到 File/Find/Rule.pm

Perl SV 值来自没有副本的指针

ruby - 相当于 Ruby 中的 PERL Carp->cluck( $msg )

perl - 如何在 perl 中包含和使用 pm 文件

Perl - 如何引用本地安装的模块?

perl - Perl 中基本循环法之间的区别 (++/+1)

php - 用于表情符号的复杂 PHP/Perl 正则表达式

linux - 每当在 linux 中使用 inode 创建新文件时,如何获取文件名以及文件的绝对路径?

Perl 模块 LWP::Protocol::https 在 Ubuntu 上安装失败