IMO, if the comparison is not involving too many complexities, better use grep
But it seems that you are ready to load such a big file into hashes, you can use
DBM::Deep But since the data is stored in a file, it will not be as quick as normal hash.
If you give more information about what/why you are trying to load and what/why you are trying to compare, you will get best possible solutions
Vivek
-- 'I' am not the body, 'I' am the 'soul', which has no beginning or no end, no attachment or no aversion, nothing to attain or lose.