in reply to Regular Expression Problem

So,

$csv_line =~ /(\d)\t(\d)\t(\d.d{3})\t(\d.d{3})\(\d.d{3})/
looks plausible. Except, '\d' matches a digit. It won't match an alphabetic character. '\w' will match alphanumeric (and '_'), or you can be more precise with [A-Z] type character classes. You don't anchor the start of the regex to the start of the string, so this will happily match to something deep inside the input string, if it doesn't match at the start. (If you do decide to anchor the regex, look out for the space or whatever it is before the first character.) You're matching the rest of the line quite carefully and precisely -- if the numbers are not of the exact form given, you will miss lines. You might want to think about some diagnostic messages for lines that are not matched, so you don't miss stuff without knowing about it.

I couldn't see what the '+' in /SEQ+/ was for. What it will do is match 'SEQ' or 'SEQQ' or 'SEQQQ' etc. Again this is not anchored.