我不明白从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