以下Perl 5脚本:
use strict;
use warnings;
use Data::Printer;
my @a = (1,2,3,4);
p @a;
给出输出:
(请注意蓝色),而此Perl 6脚本是:
use Data::Printer:from<Perl5>;
my @a = 1,2,3,4;
p @a;
给出输出:
[
[0] 1,
[1] 2,
[2] 3,
[3] 4
]
但是数字没有颜色(与上面的Perl 5情况一样)。
系统信息:
$ perl --version
This is perl 5, version 29, subversion 3 (v5.29.3) built for x86_64-linux
$ perl6 -e '.say for $*DISTRO, $*VM, $*PERL.compiler.version'
ubuntu (18.10.Cosmic.Cuttlefish)
moar (2018.11)
v2018.11
答案 0 :(得分:3)
这似乎是version 0.40 of Data::Printer
的问题,它是metacpan上的当前版本。如果安装version 0.99 from GitHub,Perl 6也会获得颜色。另请参见this issue。
我调试了0.40版,似乎从Perl 5版本到p @a
的调用与从Perl 6调用的唯一调用之间的唯一区别是,在列表上下文中调用了Perl 6调用,因此wantarray
对于Perl 6调用返回true,这显然使Data::Printer
以某种方式关闭了颜色。