使用 Text::Ngram
我有
my $c = ngram_counts($text, 3);
my %ct = %($c);
这不起作用(
Scalar found where operator expected
)。我认为这是不知道自己在做什么(对 Perl 仍然不是很好)和对我从 Text::Ngram 输出的究竟是什么感到困惑的组合。帮助?我只想看看生成的 n-gram:my @keys = sort {$ct{$a} cmp $ct{$b} } keys %ct;
foreach my $k (@keys) {
print "$k: $ct{$k}\n"
}
编辑:我的愚蠢错误,谢谢大家。
最佳答案
使用花括号取消引用散列引用:
my %ct = %{ $ct }; # %$ct would also work
你可能想使用
<=>
用于数字排序而不是 ASCII-betical 排序 cmp
.
关于perl - 取消引用 Perl hashrefs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6794344/