有没有办法只打印匹配的索引元素?

问题描述 投票:0回答:1

给定数组:001; C; 1; 066; S; ; 1

my $query = "001";
my $query2 = "006";

如果数组中的索引(例如(001))与查询匹配,则打印该行(C; 1)中的下一个元素,而不是整个数组。或者如果下一个索引(066)与查询中的打印元素匹配行(S; 1)...等我的问题是..我不能只输入这样的内容。

 if (any {$_ eq $query} @found){
    print "@found2[1..2]\n";
}

..因为我的数组是动态的-下次有20个元素,下一次是50个,等等。

任何解决方案?预先感谢。

arrays perl sorting arraylist
1个回答
0
投票

所以一种解决方案是遍历Array的索引:

my @ar = qw (001 C 1 006 S 2);

foreach my $index (0 .. $#ar-2) {
  if ($ar[$index] eq '001') {
    print @ar[$index+1 .. $index+2] , "\n";
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.