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

问题描述 投票:7回答:1

我正在用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将改变。

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

perl6
1个回答
5
投票

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

通过将变量指定为Str类型,可以轻松解决这个问题。

问题是错误消息没有提供任何暗示。

© www.soinside.com 2019 - 2024. All rights reserved.