我有一个哈希列表,其中一些哈希包含一个提供数组本身的键。
my @cars = (
{ # empty car
name => "BMW",
},
{ # car with passengers
name => "Mercedes",
passengers => [qw(Paul Willy)],
},
...
)
这很像上面,但当然不是愚蠢的汽车例子:-)
现在我需要从所有哈希中获取所有“乘客”的列表,包括那些甚至不提供乘客数组的哈希。
在第二步中,我需要从列表中检索唯一条目(实际上,乘客是 Perl 对象引用,我需要列表中的每个对象一次)
目前我这样做:
my (@all, @passengers, %seen);
for(@cars) {
push @all, @{$_->{passengers}} if $_->{passengers};
}
@passengers = grep { ! $seen{$_} ++ } @all;
我想摆脱 @all 并将所有乘客的列表直接放入grep
.
有什么建议么?