繁体   English   中英

Perl散列数组,键返回错误

[英]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'}}

看到:

http://perldoc.perl.org/perlreftut.html

http://perldoc.perl.org/perlref.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM