【发布时间】:2019-04-22 18:28:57
【问题描述】:
我在 Perl6 中使用 Data::Printer 打印数据,这是一个很棒的包,但我正在尝试更改参数,但我无法做到。
例如,我想要:
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{...?
---编辑---
略有改进,脚本识别选项show_tied但仍然不使用:
我的测试脚本:
use JSON::Fast;
use Data::Printer:from<Perl5> 'show_tied', 0;
my %conc = from-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
}}';
p %conc;
显示几乎无用的输出:
{
HG00112 {
concordant_het 3,
concordant_hom_alt var{HG00112}{concordant_het},
concordant_hom_ref var{HG00112}{concordant_het},
concordant_multiallelic var{HG00112}{concordant_het},
concordant_no_call var{HG00112}{concordant_het},
concordant_site var{HG00112}{concordant_het},
discordant_call_to_no_call var{HG00112}{concordant_het},
discordant_het_to_alt var{HG00112}{concordant_het},
discordant_het_to_ref var{HG00112}{concordant_het},
discordant_hom_alt_to_het var{HG00112}{concordant_het},
discordant_hom_alt_to_ref var{HG00112}{concordant_het},
discordant_hom_ref_to_alt var{HG00112}{concordant_het},
discordant_hom_ref_to_het var{HG00112}{concordant_het},
discordant_multiallelic_gain var{HG00112}{concordant_het},
discordant_multiallelic_loss var{HG00112}{concordant_het},
discordant_no_call_to_call var{HG00112}{concordant_het},
gained_site var{HG00112}{concordant_het},
lost_site var{HG00112}{concordant_het}
} (tied to Perl6::Hash)
} (tied to Perl6::Hash)
【问题讨论】:
-
请展示您是如何创建
%HG00112,以便我们尝试重现 -
我无法复制:pastebin.com/jVhsZNuG
-
我只有几秒钟;这是一个有点疯狂的猜测。请尝试
{;show_tied => 0}、{'show_tied' => 0}、{;{show_tied => 0}}和{;{'show_tied' => 0}}。 -
我正在运行基于 MoarVM、Data::Printer 0.40、Perl 5.30.1 到 perlbrew 和 Inline::Perl5 版本 0.38 的 Raku/Perl6 2018.03。也许其中之一是原因?
zef升级时遇到问题Inline::Perl5