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"; }
In reply to Re: problem querying TLD nameserver with Net::DNS::Resolver
by bingos
in thread problem querying TLD nameserver with Net::DNS::Resolver
by jiemi
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |