A (n x m, k, rho) two-dimensional optical orthogonal code (2-D OOC), C, is a family of n x m(0, 1)-arrays of constant weight k such that Sigma(n)(i=1) Sigma(m)(j=1) A(i, j) B(i, j circle plus(m) tau) <=rho for any arrays A, B in C and any integer iota except when A = B and tau 0 (mod m), where circle plus(m) denotes addition modulo m. Such codes are of current practical interest as they enable optical communication at lower chip rate. To simplify practical implementation, the AM-OPPW (at most one-pulse per wavelength) restriction is often appended to a 2-D OOC. An AM-OPPW 2-D OOC is optimal if its size is the largest possible. In this paper, the notion of a perfect AM-OPPW 2-DOOCis proposed, which is an optimal (n x m, k, rho) AM-OPPW 2-DOOC with cardinality m(rho)n(n-1)...(n-p)/k(k-1)...(k-rho). A link between optimal (n x m, k, rho) AM-OPPW 2-D OOCs and block designs is developed. Some new constructions for such optimal codes are described by means of semicyclic group divisible designs. Several new infinite families of perfect (n x m, k, 1) AM-OPPW 2-D OOCs with k is an element of {2, 3, 4} are thus produced.