If your data is "tab delimited" and you have 300mb of it, you can use Text::CSV_XS, the fastest method of parsing "delimited" data (which is really "separated" data). Just start the module with sep_char="\t" and it will handle your data fine.
Comment on Re: how to place rows information into column (2)