无法使用Inline :: Perl5将Perl5模块导入Perl6

con*_*con 6 perl6

我正在尝试 使用手册页https://modules.perl6.org/dist/Inline::Perl5:cpan中的建议导入一个我非常喜欢https://metacpan.org/pod/Data::Printer的Perl5模块:九

使用一个非常简单的脚本

use Inline::Perl5;
my $p5 = Inline::Perl5.new;
$p5.use('Data::Printer');
Run Code Online (Sandbox Code Playgroud)

但后来我收到这个错误:

Unsupported type NativeCall::Types::Pointer<94774650480224> in p5_to_p6
  in method p5_to_p6_type at /usr/lib/perl6/site/sources/130449F27E85303EEC9A19017246A5ED249F99E4 (Inline::Perl5) line 298
  in method unpack_return_values at /usr/lib/perl6/site/sources/130449F27E85303EEC9A19017246A5ED249F99E4 (Inline::Perl5) line 375
  in method invoke at /usr/lib/perl6/site/sources/130449F27E85303EEC9A19017246A5ED249F99E4 (Inline::Perl5) line 446
  in method import at /usr/lib/perl6/site/sources/130449F27E85303EEC9A19017246A5ED249F99E4 (Inline::Perl5) line 776
  in method use at /usr/lib/perl6/site/sources/130449F27E85303EEC9A19017246A5ED249F99E4 (Inline::Perl5) line 898
  in block <unit> at inline_perl5.p6 line 4
Run Code Online (Sandbox Code Playgroud)

这里出了什么问题?如何将perl5模块导入perl6?如果有类似的方法来获取Perl6中的彩色/标签输出,我会很高兴,Data::Printer因为我找不到它.

编辑:这在这里解决:如何在Perl6中加载Perl5的Data :: Printer?

Eli*_*sen 7

我认为你偶然发现Inline::Perl5Data::PrinterPerl 5模块中的一个错误,所以我建议你在https://github.com/niner/Inline-Perl5/issues上为它打开一个问题.

同时,语法变得更加简单.一旦你已经Inline::Perl5安装了,你只需要添加的:from<Perl5>副词从Perl 5中加载模块:

use Data::Printer:from<Perl5>;
Run Code Online (Sandbox Code Playgroud)

不幸的是,此时会产生您已经描述的相同错误:

===SORRY!===
Unsupported type NativeCall::Types::Pointer<140393737675456> in p5_to_p6
Run Code Online (Sandbox Code Playgroud)

所以我认为没有一个解决方案,不需要升级任何一个Inline::Perl5或Rakudo Perl 6.

  • 我已将问题添加到GitHub,感谢您告诉我.如果有人在那里解决它,我将重新发布一个解决方案,如果给出 (3认同)