终端ANSI颜色不适用于Inline :: Perl5(Data :: Printer)

Håk*_*and 5 perl6 raku

以下Perl 5脚本:

use strict;
use warnings;

use Data::Printer;
my @a = (1,2,3,4);
p @a;
Run Code Online (Sandbox Code Playgroud)

给出输出:

在此输入图像描述

(注意蓝色),而这个Perl 6脚本:

use Data::Printer:from<Perl5>;
my @a = 1,2,3,4;
p @a;
Run Code Online (Sandbox Code Playgroud)

给出输出:

[
    [0] 1,
    [1] 2,
    [2] 3,
    [3] 4
]
Run Code Online (Sandbox Code Playgroud)

但数字没有着色(如上面的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
Run Code Online (Sandbox Code Playgroud)

Håk*_*and 3

这似乎是0.40 版本Data::Printer的问题,该版本是 Metacpan 上的当前版本。如果我从 GitHub 安装 0.99 版本,我也会使用 Perl 6 获得颜色。另请参阅本期

我对版本 0.40 进行了一些调试,看起来p @aPerl 5 版本的调用与 Perl 6 的相同调用之间的唯一区别是 Perl 6 调用是在列表上下文中调用的,因此wantarray对于 Perl 6 返回 true调用,这显然会以Data::Printer某种方式关闭着色。