Net::DNS and gethostbyname

I was trying out DNS resolvers for perl and made these two scripts. test.poller.se returns 3 A records, the scripts print out 2 of them.

netdns.pl

#!/usr/bin/perl
 
use warnings;
use strict;
 
use Net::DNS;
 
my $resolver = new Net::DNS::Resolver;
my $query = $resolver->query("test.poller.se", "A", "IN");
 
my @hosts;
my $rr;
foreach $rr ($query->answer) {
        push(@hosts, $rr->address);
}
 
print $hosts[0] . "\n";
print $hosts[1] . "\n";

gethostbyname.pl

#!/usr/bin/perl
 
use warnings;
use strict;
 
use Socket;
 
my @hosts;
my ($name, $aliases, $addrtype, $length, @addrs) = gethostbyname("test.poller.se");
$hosts[0] = inet_ntoa($addrs[0]);
$hosts[1] = inet_ntoa($addrs[1]);
 
print $hosts[0] . "\n";
print $hosts[1] . "\n";

Performance difference for the two is quite big. Of course, Net::DNS is more then just a simple resolver.

$ time for i in `seq 1 1000`; do ./netdns.pl > /dev/null; done
real	1m18.185s
user	0m46.203s
sys	0m29.418s

$ time for i in `seq 1 1000`; do ./gethostbyname.pl > /dev/null; done
real	0m26.886s
user	0m7.784s
sys	0m17.969s