That really, really depends on what is in the files, and how they are organized. Are the lines in the files arranged by alphabet, by any chance? If so, you can skip lines from one
or the other file (depending on which has the smaller key) until you find one that matches.
If the records are in no particular order, then you have two options:
- Sort both files, and see above
- Read the smaller of the two files into memory, convert the keys into a hash, and then for each line of the larger file, check the contents of the hash.
If all else fails, you could look through
Algorithm::Diff to see if you get any ideas.