package AddressB; use Moose; use Moose::Util::TypeConstraints; use Regexp::Common 'zip'; my $zip_re = qr/^$RE{zip}{US}{-extended => 'allow'}$/; subtype USZipCodeB => as Value => where { $_ =~ $zip_re; }; has 'zip_code' => (is => 'rw', isa => 'USZipCodeB'); 1;