in reply to Efficent Text Checking
But since you have only one lookup, you don't have to store the values - you could compare them on the fly:
for my $filename (@repos){ if ($input eq read_file($filename)){ print "File $filename matches\n"; exit; } } print "No match";
If the files are rather large you can optimize the process further my just reading the first $N bytes (let's say 512) and compare them, and only if these first bytes are identical read all of the file.
Or you could just dump the files into a database and let the database build an index, then all you have to do is query the database. If your repo doesn't change too frequently that's probably the fastest solution.
|
|---|