arrays - Perl:在数组中搜索项目

标签 arrays perl variables hash perl-data-structures

给定一个 array @A我们想检查 element $B在里面。一种方法是这样说:

Foreach $element (@A){
    if($element eq $B){
        print "$B is in array A";
    }
}

然而,当谈到 Perl 时,我总是在考虑最优雅的方式。这就是我的想法:
如果我们将 A 转换为变量字符串并使用,有没有办法找出数组 A 是否包含 B
index(@A,$B)=>0

那可能吗?

最佳答案

有很多方法可以确定元素是否存在于数组中:

  • 使用 foreach
    foreach my $element (@a) {
        if($element eq $b) {
           # do something             
           last;
        }
    }
    
  • 使用 Grep:
    my $found = grep { $_ eq $b } @a;
    
  • 使用 List::Util模块
    use List::Util qw(first); 
    
    my $found = first { $_ eq $b } @a;
    
  • 使用 Slice 初始化的 Hash
    my %check;
    @check{@a} = ();
    
    my $found = exists $check{$b};
    
  • 使用映射初始化的哈希
    my %check = map { $_ => 1 } @a;
    
    my $found = $check{$b};
    
  • 关于arrays - Perl:在数组中搜索项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10240458/

    相关文章:

    variables - 在 Go 中设置全局条件变量

    javascript - 选择数组中开始日期和结束日期之间的数据

    perl - 哈希值中的 4/16 是什么?

    java - 如何转义csv文件中String[]数组中的逗号?

    perl - 找不到 Net/IP.pm

    perl - 为非对象 perl 模块复制 base/parent.pm 功能的最简洁方法是什么?

    bash - 为什么变量赋值中的空格会在 Bash 中出错?

    javascript - 如何增加 jQuery 变量?

    c# - 如何在C#中获取除最后一个元素之外的所有数组元素

    arrays - 如何在列表的每个元素之间插入值?