You could use Tie::File, but it sounds from your description as if you really don't need to. If each line is independant of all others, then you can just loop through one at a time. Just make sure you don't store anything that will accumulate over time. Just use a simple
while (<>){
my @fields = split /\t/;
#insert them into the database
}
If there's more going on, then you'll have to tell us what's complicating it so we can figure out what else to suggest.