G'day Nansh,
That looks like you're overthinking the solution. I suspect you just need:
my $count = scalar grep { $array1ref->[$_] eq $array2ref->[$_] } 0 .. +$#$array1ref;
Your example arrays have 11 elements each. With your nested foreach loops, that's 121 (11x11) comparisons; with the single iteration grep solution, that's only 11 comparisons. Given your example data looks like DNA sequences, your real data is likely to be many orders of magnitude larger: consider 10,000 vs. 100,000,000 comparisons.
While that specific line possibly solves your current issue, it's a general technique I suggest you add to your toolbox, for future reuse in similar situations, quite possibly with different types of data and different comparisons. Here's a command line example comparing two arrays of numbers:
$ perl -E 'my ($a1, $a2) = ([1,2,3],[1,3,3]); say scalar grep {$a1->[$ +_] == $a2->[$_]} 0..$#$a1' 2
— Ken
In reply to Re: Array looping
by kcott
in thread Array looping
by Nansh
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |