use warnings; use strict; my @array1; my @array2; my @result; outer: foreach my $one (@array1) { foreach my $two (@array2) { $one =~ m/\(.\)(.+)\(.\)/; if ($two eq $1) { push @result, $one; next outer; } } }