如何在Perl中获取唯一的哈希数组?

3
我希望得到唯一的哈希数组,但是我不知道该怎么做,已经尝试了很多方法。请帮我解决以下问题:
注意: 我不想使用任何Perl模块。
我的尝试:
%seen=();
@unique = grep { ! $seen{$_} ++ } @AoH;

@unique仍然没有独特的哈希值吗??

需要翻译的内容:

@unique is still not having unique hashes ??

@AoH = (
{
   name  => "susheel",
   college => "MRITS",
},
{
   name  => "sunil",
   college => "MRITS",
},
{
   name  => "susheel",
   college => "MRITS",
},
);

TO

@AoH = (
{
   name  => "susheel",
   college => "MRITS",
},
{
   name  => "sunil",
   college => "MRITS",
}
);

2
请不要使用全大写标题。 - Shadow The Spring Wizard
2
尝试自己写一些代码,如果不行的话,展示给我们你具体做了什么,这样我们才能帮助你。你开始,我们协助。我们不会替你写代码。展示给我们你实际尝试过的代码,然后描述发生了什么以及哪里不对,接着我们就可以从那里帮助你。如果你先自己尝试,很有可能你会接近答案。 - Andy Lester
我有点困惑——第一个数组中的三个哈希值都不同。为什么第二个数组中只有两个哈希值? - dsolimano
1个回答

8

要按照name键过滤唯一的哈希值,

my %seen;
my @unique = grep { ! $seen{$_->{name}}++ } @AoH;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接