I've used this module for years and years and I don't think much about it. It's just plumbing and it consistently works. The documentation is very sufficient and when I need to do anything even slightly complicated this module handles it very capably.
I found this module to be an amazingly useful tool, but a bit obtuse to get started with, perhaps just because it's so large. However, some of the examples helped tremendously. This module would rate 5 stars in my book if it had some more example scripts or perhaps improved documentation.
Some things weren't immediately obvious like what to do with a Net::DNS::Packet returned from Net::DNS::Resolver->new->search. Which said it was returning a $packet, but made no reference to Net::DNS::Packet. A few more hyperlinks here and there and a few more examples could have saved me a little time. Other than that, great module.
My only gripe so far is the lack of a method for RR objects that would allow extracting of hostnames from a query answer using a single function call. Of course, that functionality is trivial to implement, so it's not a big problem.
Otherwise, the Net::DNS module is highly functional and useable!