Perl6崩溃,“ Perl6 :: Object重载包中的左参数”

时间:2019-03-04 23:52:50

标签: perl6

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

当我写类似

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

Perl6崩溃并显示错误错误消息

  

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

     

在方法invoke-parent中位于   /home/con/.perl6/sources/130449F27E85303EEC9A19017246A5ED249F99E4   (Inline :: Perl5)第674行在sub many-args中   / usr / lib / perl6 / site / sources / D38010D24322CE1B1E6FFD8A463F23ED864152E9   (Inline :: Perl5 :: ClassHOW)第195行在8.make_xlsx.p6的块中   第100行

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

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

它工作正常。显然,这不是解决方案,因为$csv将会改变。

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

1 个答案:

答案 0 :(得分:5)

这里的问题是Flux#delayElement函数期望使用类型为write的变量/容器,但得到的是Str

通过将变量写为IO::Path类型可以轻松解决。

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