foreach my $line (@flab) { if ($line =~ /[^\t]*\Q$sTab[1]\E\t([^\t]+)/) { print RESULT "$sTab[0]\t$sTab[1]\t$2\n"; } } #### while (my $sLine = ) { chomp $sLine; my ($company, $name) = split /\t/, $sLine; if (exists $flab{$name}) { print RESULT "$company\t$name\t$flab{$name}{TITLE}\n"; } } #### my $tmp = join("|", keys %flab); my $regex = qr/(?:$tmp)/; while (my $sLine = ) { chomp $sLine; if ($sLine =~ $regex) { my ($company, $name) = split /\t/, $sLine; print RESULT "$company\t$name\t$flab{$name}\n"; } }