perl:为什么 $hashsize = keys $hash{$foo} 会给出实验警告,我该如何写得更好?

标签 perl hash warnings

我有一个由两个因素决定的哈希值(我不知道正确的术语是什么),我生成如下:

if (exists $cuthash{$chr}{$bin}){
    $cuthash{$chr}{$bin} += 1;
}else{
    $cuthash{$chr}{$bin} = 1;
}

后来我想获取散列的每个 $chr 部分的大小,这在我这样做时有效:
for my $chr (sort keys %cuthash){
    my $hashsize = keys $cuthash{$chr};
    ...
}

但我收到警告:
keys on reference is experimental at ../test.pl line 115.

它有效,但显然它并不完美。什么是更好的方法?

谢谢

最佳答案

如果您取消引用 hashref

my $hashsize = keys %{ $cuthash{$chr} };

那么应该没有警告。

关于perl:为什么 $hashsize = keys $hash{$foo} 会给出实验警告,我该如何写得更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29845375/

相关文章:

perl - 如何在变量中的特定符号前添加字符?

perl - 对其他角色实现要求不起作用?

java - 在数组中存储和访问字符串的最快方法

perl - 遍历复杂的数据结构

perl - 如何从函数返回值中使用 Perl keys()?

c - C 中的 Malloc 警告

php - 引用 - 这个错误在 PHP 中意味着什么?

perl - “Variable $foo will not stay shared”调用子例程时Perl中的警告/错误

c++ - GCC 7,-Wimplicit-fallthrough 警告,以及清除它们的便携方式?

Perl 获取嵌套哈希值