[英]Perl array of hashes, keys return an error
我有这段代码,其中array是一个哈希数组:
my $hash = $array[0];
print "REF: " . ref($hash) . "\n";
my @names = keys ($hash);
REF打印哈希,所以我知道它是哈希。
但是然后keys函数返回一个错误:
密钥的参数1的类型必须为哈希
如何将$ hash用作哈希?
谢谢!
$hash
不是哈希,它是哈希引用。 因此,您需要先取消引用它,然后才能对其运行键。
最简单的方法是:
keys %$hash;
例如
foreach my $key ( keys %$hash ) {
print $key, " => ", $hash -> {$key},"\n";
}
是的,我故意混合使用两种取消引用方法。 ->
表示“取消引用”-通常用于面向对象的东西。
对于更复杂的取消引用, %$hash{'key'}
模棱两可,因此您开始需要使用方括号-例如, %{$hash{'key'}}
。
看到:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.