gpt4 book ai didi

Perl:CPAN - 模块修改和添加功能

转载 作者:行者123 更新时间:2023-12-02 11:36:39 25 4
gpt4 key购买 nike

我找到一个我想要更改的模块。

我的问题有这样的一些特征:

  • 我想向此模块添加功能和灵 active
  • 现在这个模块解决了任务,但是网络服务,根据其编写的内容,更改 API
  • 而且,我想使用这个模块的代码。
  • 不是我的模块
  • 修复一些错误

在这种情况下我应该如何?

  • 继承此模块并添加功能并上传到 CPAN?
  • 向作者询问我的修改(以及重新加载模块)?
  • 还有别的事吗?

最佳答案

在使用模块时修改模块的方法有很多种,我在 Mastering Perl 中介绍了其中的大部分方法。 。

  • Dave Cross mentions ,向上游发送修复程序或成为该项目的一部分。听起来您有成为重要贡献者的雄心。 :)
  • 创建子类来替换方法
  • 重写或重载子例程或方法
  • 封装子例程以修改或调整输入或输出(例如 Hook::LexWrap )
  • 创建一个本地修补版本,并将其与主代码分开存储,这样它就不会在升级中消失

例如,这是我在等待上游修复时经常在程序代码中直接执行的操作:

use Some::Module;  # load the original first
BEGIN {
package Some::Module;
no warnings 'redefine';
if( $VERSION > 1.23 and $VERSION < 1.45 ) {
*broken = sub { ... fixed version ... };
}
}

这样,即使目标模块升级了,我也能修复。

关于Perl:CPAN - 模块修改和添加功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11699118/

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