$ perl -we ' use strict; my @array=(1,2); my $matches = 0; for my $ea (1..3) { $matches = grep { printf("idx: %d, val: %d == %d? %3s, ", $_, $array[$_], $ea, ($array[$_] == $ea) ? "YES" : "NO"); $array[$_] == $ea; } (0..$#array); print "matches: $matches\n"; } ' __output__ idx: 0, val: 1 == 1? YES, idx: 1, val: 2 == 1? NO, matches: 1 idx: 0, val: 1 == 2? NO, idx: 1, val: 2 == 2? YES, matches: 1 idx: 0, val: 1 == 3? NO, idx: 1, val: 2 == 3? NO, matches: 0