in reply to print datafields separated by tab

The simplest way to achieve what you want is to use the special variables $\ and $,:
@field = qw(look at me now); @field2 = qw(this is so neat); local($\, $,) = ("\n", "\t"); print @field; # first row print @field2; # second row
Resulting in:
look at me now this is so neat

About your original problem: I think your fields data ends in newlines.