我正在用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 line 2020没有重载的魔法。
在方法invoke-parent at /home/con/.perl6/sources/130449F27E85303EEC9A19017246A5ED249F99E4(Inline :: Perl5)第674行中的sub-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
将改变。
为什么会发生这种错误?我该如何解决?
这里的问题是write
函数需要一个Str
类型的变量/容器,但是得到一个IO::Path
。
通过将变量指定为Str
类型,可以轻松解决这个问题。
问题是错误消息没有提供任何暗示。