我正在用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
将会改变。
为什么会发生此错误?我该如何解决?
答案 0 :(得分:5)
这里的问题是Flux#delayElement
函数期望使用类型为write
的变量/容器,但得到的是Str
。
通过将变量写为IO::Path
类型可以轻松解决。
问题是该错误消息没有给出任何提示。