perl - 取消引用 Perl hashrefs

标签 perl hash dereference

使用 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/

相关文章:

c++ - 将指针命名为 'pointerToXYZ'

perl - Perl错误使用未初始化的值$ _代替(s///)

python - 仅将日志文件汇总为唯一条目

linux - 如何根据公共(public)列合并文件?

python - 在Python中计算不解压的zip内容的CRC32、MD5和SHA1

node.js - 如何在 Node js for payumoney 支付网关集成中创建哈希键?

arrays - 在 Perl 中循环遍历数组的哈希值

perl - 使用 AnyEvent::Handle 和 tcp_connect 重新连接

java - Java中的64位HashMap

c - 使用传递引用/取消引用的奇怪行为