in reply to Regexp: Overlapping matches

You could use Text::CSV_XS or Text::CSV to parse the file. It has an option to set the separator character.

use Text::CSV_XS; my $csv = Text::CSV_XS->new ({ sep_char = "\t" }); open my $io, "<", $file or die "$file: $!"; while (my $row = $csv->getline ($io)) { my @fields = @$row; ... }