gpt4 book ai didi

perl - 如何将键从散列复制到数组而不重复?

转载 作者:行者123 更新时间:2023-12-05 01:23:29 26 4
gpt4 key购买 nike

如果我有这样的数组和散列

#!/usr/bin/perl
use warnings;
use strict;
use Data::Dumper;

my @a = qw/a b c d e/;
my %h = (a => 1, b => 1, f => 1, g => 1);

我想以 @a 结束,其中包含 %h 中的所有键,并且数组中的任何元素都不能出现超过一次。

如何做到这一点,因为 exists 不适用于数组?

最佳答案

如果你有 Perl 5.10 及更高版本,你可以使用智能匹配(~~):

for my $key (keys %h) {        
push @a, $key unless $key ~~ @a;
}

否则,List::Utilfirst 可以帮助:

for my $key (keys %h) {        
push @a, $key unless first { $_ eq $key } @a;
}

关于perl - 如何将键从散列复制到数组而不重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6584294/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com