Perl:CPAN-模块修改和添加功能
我找到了一个我想改变的模块 我的问题有如下特点:Perl:CPAN-模块修改和添加功能,perl,module,cpan,Perl,Module,Cpan,我找到了一个我想改变的模块 我的问题有如下特点: 我想向该模块添加功能和灵活性 现在这个模块解决了任务,但是web服务,对于它编写的内容,改变了API 同时,我想使用这个模块的代码 它不是我的模块 修正一些错误 在这种情况下我该怎么办 是否继承此模块并添加功能并上载到CPAN 询问作者我的修改(和重新加载模块) 还有别的吗 我认为你的a和b选项几乎是最好的方法——尽管我可能会反过来做 向模块作者提出建议。阅读模块 了解作者希望如何与之联系的文档。一些 像电子邮件,有的像,有的有更具体的方法
- 我想向该模块添加功能和灵活性
- 现在这个模块解决了任务,但是web服务,对于它编写的内容,改变了API
- 同时,我想使用这个模块的代码
- 它不是我的模块
- 修正一些错误
- 是否继承此模块并添加功能并上载到CPAN
- 询问作者我的修改(和重新加载模块)
- 还有别的吗李>
在使用模块时,有多种方法可以对其进行修改,我将在中介绍其中的大部分方法
- 作为,向上游发送修复程序或成为该项目的一部分。听起来你有成为一名重要贡献者的雄心。:)李>
- 创建一个子类来替换方法
- 重写或重载子例程或方法
- 包装子程序以修改或调整输入或输出(例如)
- 创建一个本地补丁版本,并将其与主代码分开存储,这样它就不会在升级中消失
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 ... };
}
}
使用Some::Module;#首先加载原始文件
开始{
包Some::模块;
没有“重新定义”的警告;
如果($VERSION>1.23和$VERSION<1.45){
*断开=子{…固定版本…};
}
}
这样,即使目标模块升级了,我也可以修复。您能告诉我们它是哪个模块吗?VK模块()