in reply to Regular Expression Problem

For tab-delimited table data (which I would call "TSV"), it is most often the case that you don't really need to worry about the separator character (tab) being embedded as data within one of the fields (requiring that the field be "quoted" in some way to protect the field-data-internal tabs being misconstrued as separator characters). Your data seems to fall easily into the common case.

And in that case, I prefer using split:

my @fields = split /\t/, $tsv_line; if ( $fields[0] eq 'SEQ' ) { print "Header of Predictions\n"; } elsif ( join("", @fields[0,1]) =~ /^\w\w$/) { push @ProteinSeq, $fields[0]; push @Prediction, $fields[1]; printf "Amino acid is: %s and Prediction is: %s\n", @fields[0,1]; }