$ua = LWP::UserAgent->new(use_eval => 0); ... eval { $response = $ua->request($request); }; if ($@) { if ($@ =~ /Connection refused/) { # ignore error } else { # just like, ya know, die or something } } # I think $response will still be intact here.