代码之家  ›  专栏  ›  技术社区  ›  Håkon Hægland

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

  •  5
  • Håkon Hægland  · 技术社区  · 5 年前

    以下是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
    ]
    

    但是数字没有着色(与上面的Perl5案例一样)。

    系统信息 :

    $ 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 回复  |  直到 5 年前
        1
  •  3
  •   Håkon Hægland    5 年前

    这似乎是一个问题 version 0.40 of Data::Printer 这是Metaspan上的当前版本。如果我安装 version 0.99 from GitHub 我也用Perl 6获得颜色。另见 this issue .

    我稍微调试了0.40版,这似乎是调用 p @a Perl5版本与Perl6的相同调用相比,Perl6调用是在列表上下文中调用的,所以 wantarray 对于Perl 6调用,返回true,这显然使 数据:打印机 以某种方式关闭着色。

    推荐文章