use strict; my $attempts; my $outfile = "my_file.foo"; my $req = HTTP::Request->new(GET => $reqstr); $req->authorization_basic('username', 'password'); my $res = $ua->request($req); my $title = $res->header('Title'); while ($attempts ne 4){ if (($res->is_success) and ($title ne "")) { open(OUT,"> $outfile") or die "Could not open $outfile for writing: $!\n"; print OUT $res->content; close OUT; exit 0; ## Do not output if there were empty results } elsif ($res->status_line eq '200 OK') { print "There were empty results\n"; exit 0; ## Some other error } else { print "Error: " . $res->status_line . "\n"; print "Will try again in 10 seconds\n"; sleep 10; $attempts++; } }