我有一个由两个因素决定的哈希值(我不知道正确的术语是什么),我生成如下:
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/