我不明白從Programming Perl 3e這個功能的最後一行。這個Perl grep如何確定幾個哈希的聯合?
這裏是你會如何編寫通過返回傳遞給它的所有哈希值發生鍵的列表確實是一種交集的功能:
@common = inter(\%foo, \%bar, \%joe); sub inter { my %seen; for my $href (@_) { while (my $k = each %$href) { $seen{$k}++; } } return grep { $seen{$_} == @_ } keys %seen; }
我明白%seen
是一個哈希這將每個鍵映射到在提供給該函數的任何散列中遇到的次數。
我喜歡這個最近編輯的鍵從
%seen
鍵。很好的答案,DVK。 – spazm 2010-04-15 05:41:04非常好。保存了我的一天。我實際上編寫了一段代碼來理解正在發生的事情,並將我的頭撞到了將近一個小時,但無法弄清楚。 – anukalp 2014-11-16 12:25:01