First, you skip index 0. Second, if anyone modifies $[, your @a-1 won't be the last element. Anyhow, let's take a crack at it:
#!/usr/bin/perl -wl use strict; my @a = qw(1 2 1 1 2 2 1 2); my @b = qw(aa aa ab ac ac ad ac ad); print "first" if find_pair(1,"aa",\@a,\@b); print "not printed" if find_pair(2,"ax",\@a,\@b); print "not printed" if find_pair(4,"ax",\@a,\@b); print "second" if find_pair(2,"ac",\@a,\@b); print "third" if find_pair(2,"ad",\@a,\@b); sub find_pair { my ($first,$second,$array1,$array2) = @_; $first eq $array1->[$_] && $second eq $array2->[$_] && return 1 for +$[..$#$array1 } __END__ first second third
antirice
The first rule of Perl club is - use Perl
The ith rule of Perl club is - follow rule i - 1 for i > 1
In reply to Re: Finding a match between two paired arrays
by antirice
in thread Finding a match between two paired arrays
by Sandy
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |