终端ANSI颜色不适用于Inline :: Perl5(数据::打印机)

时间:2019-02-08 23:00:40

标签: perl6

以下Perl 5脚本:

use strict;
use warnings;

use Data::Printer;
my @a = (1,2,3,4);
p @a;

给出输出:

enter image description here

(请注意蓝色),而此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

1 个答案:

答案 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以某种方式关闭了颜色。