It sounds like your bind() is failing. You need to check for an LDAP error/message returned after the bind() call. I'd also talk a good look at the value of $ldap_svr before the bind(), I've spent more than one debugging session discovering that my User (often Me) fat-fingered the server name. Net::LDAP is very good about not die-ing on errors and handing status back to the caller.