use LWP::UserAgent;
my $ua = LWP::UserAgent->new();
my $response = $ua->post('server url', 'some nvp string');
####
use LWPx::ParanoidAgent;
my $ua = LWPx::ParanoidAgent->new;
$ua->timeout(30);
my $response = $ua->post('server url', 'some nvp string');
####
use LWP::UserAgent::Determined;
my $ua = LWP::UserAgent::Determined->new;
$ua->timing( "1,3,15" )
my $response = $ua->post('server url', 'some nvp string');
####
sub _resolve {
my ($self, $host, $request, ...) = @_;
my $res = $self->resolver; # from Net::DNS::Resolver
...
my $sock = $res->bgsend($host) # bgsend from Net::DNS::Resolver
or die "No sock from bgsend";
my $rin = '';
vec($rin, fileno($sock), 1) = 1;
my $nf = select($rin, undef, undef, $self->_time_remain($request)); # _time_remain is the clock for the request
die "DNS lookup timeout" unless $nf;
my $packet = $res->bgread($sock) # bgread from Net::DNS::Resolver
or die "DNS bgread failure";
...