A super search for Net::SMTP and auth found several threads referencing Net::SMTP and the auth() method, notably this one. It suggests that you need to have either Authen::SASL::Cyrus or Authen::SASL::Perl installed for the auth() method to function properly.
Comment on Re: Net::SMTP auth login fails - passes in username twice!