http://qs321.pair.com?node_id=889953


in reply to problem querying TLD nameserver with Net::DNS::Resolver

Your variable is undefined because there wasn't an answer to the specific question you asked

From the Net::DNS::Resolver documentation:

Returns a "Net::DNS::Packet" object, or "undef" if no answers were found. If you need to examine the response packet whether it contains any answers or not, use the send() method instead.

This amended code uses send() instead:

use strict; use warnings; use Net::DNS; my $domain = $ARGV[0]; #192.48.79.30 is j.gtld-servers.net my $res = Net::DNS::Resolver->new( nameservers => [qw(192.48.79.30)], recurse => 1, debug => 1, ); my $packet = $res->send("$domain", 'NS'); my @authority = $packet->authority; foreach my $rr (@authority) { print $rr->string, "\n"; }