A perfect hash family PHF(N ; k, v, t) is an N × k array on v symbols with v ≥ t, in which in every N × t subarray, at least one row is comprised of distinct symbols. Perfect hash families have a wide range of applications in cryptography, particularly to secure frameproof codes, in database management, and indirectly in software interaction testing. New recursive constructions, new direct constructions, and PHFs found using tabu search are provided here. The first general tables of the best known sizes of PHFs are presented; in the process, the known direct and recursive constructions are surveyed.An m × n latin rectangle is an m × n array, m ≤ n, in which each cell contains a symbol from an n-set; no symbol occurs twice in any row or in any column. Two m×n latin rectangles are orthogonal if, when superimposed, every ordered pair of symbols arises at most once. A set of k latin rectangles, each m × n, is mutually orthogonal if every two latin rectangles in the set is orthogonal; such a set is called k MOLR. An equivalent structure, an "(n; m, k + 2)-difference function family", is defined in [31]. When m = n, this is the more standard combinatorial structure, mutually orthogonal latin squares, or MOLS.Theorem 2.8 ([29]). Suppose there are at least s = ( t 2 ) − 1 MOLR of size m × n. Then there exists a PHF(s + 2; mn, n, t).Corollary 2.9 ([29]). Suppose there are at least s = ( t 2 ) − 1 MOLS of order v. Then there exists a PHF(s + 2; v 2 , v, t).