Perl哈希数组,键返回错误
我有一段代码,其中array是散列数组:Perl哈希数组,键返回错误,perl,Perl,我有一段代码,其中array是散列数组: my $hash = $array[0]; print "REF: " . ref($hash) . "\n"; my @names = keys ($hash); REF打印散列,所以我知道它是散列 但是keys函数返回一个错误: 键的arg 1的类型必须为哈希 如何使用$hash作为hash 谢谢 $hash不是散列,而是散列引用。因此,您需要先解除对它的引用,然后才能对其运行键 最简单的方法是: keys %$hash; e、 g 是的,我故
my $hash = $array[0];
print "REF: " . ref($hash) . "\n";
my @names = keys ($hash);
REF打印散列,所以我知道它是散列
但是keys函数返回一个错误:
键的arg 1的类型必须为哈希
如何使用$hash作为hash
谢谢
$hash
不是散列,而是散列引用。因此,您需要先解除对它的引用,然后才能对其运行键
最简单的方法是:
keys %$hash;
e、 g
是的,我故意混合了两种解引用方法。->
符号表示“取消引用此项”-它通常用于面向对象的内容
对于更复杂的解引用,%$hash{'key'}
是不明确的,因此您开始需要括号-%{$hash{'key'}}
见:
REF打印散列,因此您知道它是对散列的引用。
foreach my $key ( keys %$hash ) {
print $key, " => ", $hash -> {$key},"\n";
}