We construct a set of q(qcn) nonequivalent q-ary perfect single error-correcting codes of length n over GF(q) for sufficiently large n and a constant c = 1/q - epsilon. The construction is based on a small subcode A of the q-ary Hamming code of length n for which A and q - 1 of its cosets A(1),..., A(q-1) cover the same subset V. We show a few isomorphic and nonisomorphic ways in which A can be chosen, and we prove the uniqueness of these ways to choose A.