簡體   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