[英]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.