【问题标题】:Inconsistent CPAN module behaviour - whom to blame?不一致的 CPAN 模块行为——该怪谁?
【发布时间】:2016-06-03 00:21:17
【问题描述】:

我注意到 Spreadsheet::XLSX 模块的行为不一致,具体取决于它的安装方式。通过 /usr/bin/cpan 在 OpenSUSE 上安装时,它会从 Excel 2007 工作表中的单元格中读取日期:

$VAR1 = bless({
    'Format' => 'yyyy-mm-dd', 
    'Val' => '2016-01-04', 
    '_Value' => '2016-01-04', 
    'Type' => 'Date' 
}, 'Spreadsheet::ParseExcel::Cell' )

这是正确的。但是,在从 OpenSuSE 存储库作为 RPM 安装的计算机上,读取同一工作表的相同单元格的相同代码返回:

$VAR1 = bless({ 
    'Type' => 'Date', 
    'Format' => 'm-d-yy', 
    'Val' => '42373', 
    '_Value' => '1-4-16' 
}, 'Spreadsheet::ParseExcel::Cell'  );

在我看来,在我自己的机器上编译的代码似乎包含不同的默认值,或者至少以不同于分发维护者编译的方式读取工作表。

这是否看起来像是编写依赖于编译时环境的代码的原作者、编译了不可移植代码的发行版维护者或决定在存储库中包含编译时环境相关代码的人的错转数?

我不想责怪任何人,只想知道我应该在哪里提交错误报告。

【问题讨论】:

    标签: linux excel perl cpan opensuse


    【解决方案1】:

    关于“责备”。 ;) 首先,阅读模块的许可证。并阅读 Linux 的 GPL。

    您会发现类似以下内容:此软件包是“按原样”提供的,没有任何明示或暗示的保证,包括但不限于对适销性和特定用途适用性的暗示保证。

    关于错误报告:当然,欢迎报告错误。

    关于问题:

    • 检查模块的changelog
    • 你会发现:

    0.14

    • 将默认日期格式更改为 yyyy-mm-dd。这与 Spreadsheet::ParseExcel 匹配。

    因此,可能不是 BUG - 而是记录在案的更改。

    检查两者的模块版本(也就是从 cpan 和 RPM 安装)。

    【讨论】:

    • 我宁愿称其为“已记录的错误修复”。但总的来说,你是对的。 rpm 版本已过时。
    【解决方案2】:

    [羞耻]看起来唯一应该责备的一方就是我自己[羞耻]。

    我没有注意到也没有检查过作为 RPM 分发的模块是否已过时。由于同时修复了该漏洞,因此从 CPAN 安装的最新模块可以正常工作。

    【讨论】:

      猜你喜欢
      • 2019-03-09
      • 2013-11-15
      • 2020-02-12
      • 1970-01-01
      • 2013-03-13
      • 2016-07-09
      • 2022-11-14
      • 2022-01-20
      • 2010-12-16
      相关资源
      最近更新 更多