【问题标题】:Raku crashes, "left argument in overloaded package Perl6::Object"Raku 崩溃,“重载包 Perl6::Object 中的左参数”
【发布时间】:2019-07-26 08:44:31
【问题描述】:

我正在用 Raku 和 inline::Perl5 编写一个 excel xlsx 电子表格。

当我写一行像

$file-location-ws.write($row, 2, $csv);

Raku 崩溃并显示神秘的错误消息

操作“eq”:未找到方法,重载包中的左参数 Perl6::Object,正确的参数在 /usr/local/share/perl/5.26.0/Excel/Writer/XLSX/Worksheet.pm 2020 行。

在方法调用父级中 /home/con/.perl6/sources/130449F27E85303EEC9A19017246A5ED249F99E4 (Inline::Perl5) 子多参数中的第 674 行 /usr/lib/perl6/site/sources/D38010D24322CE1B1E6FFD8A463F23ED864152E9 (Inline::Perl5::ClassHOW) 8.make_xlsx.p6 块中的第 195 行 第 100 行

但如果我将 $csv 替换为文件名 'Pumbaa Validation Plate 1 samplesheet.csv' 的文字字符串

$file-location-ws.write($row, 2, 'Pumbaa Validation Plate 1 samplesheet.csv');

它工作得很好。显然,这不是一个解决方案,因为$csv 会改变。

为什么会发生这个错误?我该如何解决?

【问题讨论】:

  • 对我来说感觉像是一个错误要报告给Inline::Perl5 问题,您出现在to have done already
  • @ElizabethMattijsen 是的,我解决了问题并关闭了问题
  • 仅供参考,niner 以“我认为这仍然是 IP5 中的一个问题......将不得不调查。”重新打开了这个问题。希望一些修复 IP5 代码和/或其错误消息和/或其文档和/或 P5 的组合将来自此 SO。

标签: raku


【解决方案1】:

这里的问题是write 函数需要一个Str 类型的变量/容器,但得到的是IO::Path

这很容易通过将要写入的变量分配为Str 类型来解决。

问题是错误消息没有给出任何提示。

【讨论】:

  • “问题是错误消息没有给出解决方案的提示”。确实。仅供参考,Larry Wall 在 P6 文化中强调,我们认为 LTAs 本身就是潜在的问题(错误),与潜在的错误分开。所以这个 SO 有可能涉及 两个 问题——错误和消息。 (也许还有 doc。)在这种情况下,niner 正在调查,所以我认为目前不需要进一步提交任何文件。但请注意,如果您决定就邮件提出单独问题,那将是合理的。
猜你喜欢
  • 2016-04-02
  • 2011-08-08
  • 1970-01-01
  • 2012-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-01
  • 2015-06-11
相关资源
最近更新 更多