$ perl -e 'print join(" * ",split(/\s*/,"hi there")),"\n";'
h * i * t * h * e * r * e
The problem is that \s* matches zero or more spaces. That matches between every character, and so splits the results into single characters. What you want to split on is either /s+ or " ":
$ perl -e 'print join(" * ",split(" ","hi there")),"\n";'
hi * there
Unrelated, you could simplify this code greatly if you used a different data structure, such as this array of hash references @seq:
@{$seq[$i]}{qw(trstart trend period copy consize matches indels score numa numc numg numt entropy)} = split(' ',$line);
And has somebody has pointed out, your use of the diamond operator <TR_INFILE> is odd. You read a line at the end of the loop, then at the beginning of the loop you immediately discard this line and read a new one. You chomp the line at the end of the loop, but not the one at the beginning. This is probably not what you mean to do.
In reply to Re: RegEx misbehaving?
by sgifford
in thread RegEx misbehaving?
by pdotcdot
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |