For a given list of strings, it produces a hash function and hash table, in form of C or C++ code, for looking up a value depending on the input string.
The hash function is perfect, which means that the hash table has no collisions, and the hash table lookup needs a single string comparison only.
Output from the gperf program is used to recognize reserved words in the GNU C, GNU C++, and GNU Pascal compilers, as well as with the GNU indent program.