To give a reasonable answer, a few of things need to be more clear. Are you going to load the information in a perl process that will stay alive and process your thousands of lookups? Or does each lookup have to load the data from the .csv file? How many total data points will there be? Will new data be arriving and need to be loaded as you are processing?