在Perl6中更改Data :: Printer中的参数

时间:2019-04-22 18:28:58

标签: printing perl6

我正在使用Data::Printer在Perl6中打印数据,这是一个非常棒的程序包,但是我试图更改参数,但是我不能。

例如,我想要:

HG00112 {
    gained_site                    {
        9:10162   0,
        9:10272   var{HG00112}{gained_site}{9:10162},
        9:10326   var{HG00112}{gained_site}{9:10162},
        ...
}(tied to Perl6::Hash)

看起来像

HG00112 {
    gained_site                    {
        9:10162   0,
        9:10272   0,
        9:10326   0,
        ...
}(tied to Perl6::Hash)

为了更容易阅读(我并不在乎tied to Perl6::Hash

可以使用JSON看到此哈希元素:

"HG00112": {
    "discordant_multiallelic_loss": 0,
    "concordant_hom_alt": 4,
    "discordant_het_to_alt": 0,
    "discordant_hom_alt_to_ref": 0,
    "discordant_hom_ref_to_alt": 0,
    "lost_site": 0,
    "concordant_het": 3,
    "discordant_multiallelic_gain": 0,
    "discordant_hom_alt_to_het": 0,
    "discordant_call_to_no_call": 0,
    "discordant_het_to_ref": 0,
    "concordant_hom_ref": 5,
    "concordant_site": 18,
    "discordant_no_call_to_call": 0,
    "concordant_no_call": 6,
    "concordant_multiallelic": 0,
    "gained_site": 0,
    "discordant_hom_ref_to_het": 0
}

我通常使用use Data::Printer:from<Perl5>并使用

的建议加载程序包

Terminal ANSI colors does not work with Inline::Perl5 (Data::Printer)

我已经尝试使用https://metacpan.org/pod/Data::Printer的建议,即

use Data::Printer:from<Perl5> {show_tied => 0}

use Data::Printer:from<Perl5> show_tied => 0

但都显示错误

  

从'Data::Printer'导入时出错:没有这样的标记'show_tied'

如何在没有丑陋的Data::Printer的情况下从var{...获取输出,使其看起来像第二个代码选择?

1 个答案:

答案 0 :(得分:2)

引用the issue I opened in response to this SO中Stefan的解释:

  

解决方案非常简单:使用Data::Printer:from<Perl5> 'show_tied', 0;胖逗号=>是Raku中的Pair构造函数,而实际上在Perl 5中只是花哨的逗号。Raku认为{{1} }参数,用于导入Pair之类的标记(相当于:ALL)。要解决此问题并传递Perl 5代码的期望,只需单独列出这些值即可。