This module is straightforward and simple, has no complex dependencies, is solid, and works well for established registries. But like the other poster says you have to add current registries into the patterns or it won't come up with answers. One non-obvious issue was that it sets the default Server when creating a new object, even if you don't specify the domain. In this case, it defaults to internic, and subsequent lookup(Domain=>$domain) calls does not make it autodetect the whois server according to the TLD. The fix is easy, just undef the Server: lookup(Domain=>$domain,Server=>undef).