与我之前的问题类似,但这一次我想知道整数列表中的整数是否在数组中。
例如,如果我有:
@int_array = (7,101,80,22,42);
如何检查整数值80或77或99是否在数组中?有没有比为列表中的每个整数执行单独的智能匹配更好的方法?我正在使用Perl 5.10.1
答案 0 :(得分:4)
我认为这里最好的答案是:
perldoc -q "How can I tell whether a certain element is contained in a list or array?"
答案 1 :(得分:2)
#!/usr/bin/env perl
use warnings;
use 5.012;
my @array = (7,101,80,22,42);
my @items = (77,81,99);
my $it = join '|', @items;
my $re = qr/^(?:$it)\z/;
say $re ~~ @array ? 'OK' : 'Not OK';
答案 2 :(得分:1)
您可以将数组转换为哈希值,因此,无需在每次要查找内容时搜索整个列表,都可以立即找到它。
答案 3 :(得分:0)
最简单的方法是将int数组转换为一个散列,其中int是键和值。然后,您可以使用if (exists($intHash{$iVal))
答案 4 :(得分:0)
还有'grep'方法
if(grep / $ num /,@ array){print“yerp!\ n”; }