主要观点:Perl 软件的向后兼容性很棒,但有时会遇到不工作的包,作者历经艰难追踪并解决了一个 15 年的 bug。
关键信息:
- 为处理北极海冰范围数据运行旧代码时,
Algorithm::CurveFit包测试失败无法安装。 - 通过创建 Debian jessie 的 Vagrant 虚拟机,更新 APT 仓库等操作,重建过去环境并成功安装该包及运行测试。
- 深入研究代码发现参数传递错误是导致测试失败的原因,修改后测试通过,还发现可能存在未实现的“五点模板”计算等问题。
重要细节: - 作者使用
cpanm --installdeps.安装依赖失败,Algorithm::CurveFit的测试在 Debian stretch 上不再工作,而在 Debian jessie 上曾工作。 - 在虚拟机中更新
/etc/apt/sources.list,安装vim、curl、build-essential等软件,安装perlbrew并切换到 Perl 5.18.4 版本,成功安装Algorithm::CurveFit。 - 深入代码后发现
@parameters数组传递给$function_sub时出错,导致数值不稳定,推测是整数精度变化引起,虽未找到确切原因但已修复该 bug 并创建 GitHub 仓库。 - 作者还对软件维护等问题进行了思考。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。