Perl6 вылетает, «левый аргумент в перегруженном пакете Perl6 :: Object» - PullRequest
0 голосов
/ 05 марта 2019

Я пишу электронную таблицу Excel xlsx с Perl6 и inline :: Perl5.

Когда я пишу строку вроде

$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, в под-многих аргументах в / usr / lib / perl6/ site / sources / D38010D24322CE1B1E6FFD8A463F23ED864152E9 (Inline :: Perl5 :: ClassHOW) строка 195 в блоке в строке 8.make_xlsx.p6 100

, но если я заменю $ csv на буквальную строку имени файла 'Pumbaa Validation Plate 1 samplesheet.csv' таким образом

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

все работает просто отлично.Очевидно, что это не решение, так как $csv изменится.

Почему происходит эта ошибка?Как я могу это исправить?

1 Ответ

0 голосов
/ 05 марта 2019

Проблема здесь в том, что функция write ожидает переменную / контейнер типа Str, но получает IO::Path.

Это легко решается путем назначения переменной, которая будет записана какStr type.

Проблема заключалась в том, что сообщение об ошибке не содержало никаких намеков на это.

...