if(@{$list}) { foreach $row (@{$list}) { my $Found = 1; for(my $i = 0; $i < @vals; $i++) { if($vals[$i] && $row->[$i+1] && String::Approx::amatch($row->[$i+1], $vals[$i])) { print "Found: " . $row->[0] . "\n"; $Found = $row->[0]; } else { $Found = 0; } } if($Found) { return $Found; } } } #### my $result = 1; for my $i ( 0 .. $#vals ) { $result &&= foo( $vals[$i], $arr[$i] ); } if ( $result ) { ..