Perhaps the following method could be used:
- output each hash to a file, sorted alfabetically by key
- then run each file against the file of the target hash (or even each other file, if you need to do a full cross control) through a "diff" program, parsing the output with Perl and calculating the difference (e.g. score = number of lines different + number of lines missing + number of lines added)
- sorting the "results" from the diffs and finding the hash which is closest to the target hash
CountZero
"If you have four groups working on a compiler, you'll get a 4-pass compiler." - Conway's Law