New constructions for perfect hash families and related structures using combinatorial designs and codes