Perhaps your webserver just doesn't respond to "HEAD" requests. Shit happens.
In that case, I'd call plain "GET" but you could abort halfway. You then will have to use a callback. See getprint (in LWP::Simple) as an example, which I have reproduced here:
sub getprint ($)
{
my($url) = @_;
my $request = HTTP::Request->new(GET => $url);
local($\) = ""; # ensure standard $OUTPUT_RECORD_SEPARATOR
my $callback = sub { print $_[0] };
if ($^O eq "MacOS") {
$callback = sub { $_[0] =~ s/\015?\012/\n/g; print $_[0] }
}
my $response = $ua->request($request, $callback);
unless ($response->is_success) {
print STDERR $response->status_line, " <URL:$url>\n";
}
$response->code;
}
You'd have to reproduce this but of course with a different callback... With
die and
eval BLOCK, it might just work.