in reply to selecting columns from a tab-separated-values file
You might be better off tolerating the expense of loading your data into a database of some sort once, perhaps SQLite, and thereafter take advantage of the speed of the database which is optimised for data look-ups, using SQL queries to access your columns. DBI and DBD::SQLite would facilitate this.
I hope this is helpful.
Cheers,
JohnGG
In Section
Seekers of Perl Wisdom