in reply to Script Executes Very Slowly

Move as many operations as you can outside of the loop. At the moment that's mainly my @match = split (/\t/,$line); - you can split @flab before the main loop and store the results as an array of arrays, e.g. @flab = map {[split /\t/]} @flab;

Also, I am curious about "$match[0] =~/\Q$sTab[1]\E/": is your intent really to ask "is the string $sTab[1] contained anywhere in the string $match[0]"? If so, then you could try and see if index is faster. If not, and you're looking for an exact match instead, then perhaps you should instead put all of @flab into a hash with the name as a key, and use that for your lookup.