sub valid{ local $_ = shift; return /\d/ && /[a-z]/ && /[A-Z]/ && /^.{5,8}$/ }