LWP::UserAgentのタイムアウト判別

URIにアクセスできたけどエラーが返されたのか、そもそもアクセスできなかったのかを区別するのはどうすればいいのか、ということでちょっと悩まされた。

use LWP::UserAgent;
my $ua = LWP::UserAgent->new;
$ua->timeout(10);
my $res = $ua->get($url);
my $msg = ($res->is_success) ? $res->content : $res->status_line;
print "$msg\n";

タイムアウトした際は、status_line()が 500 read timeout になる、というだけでした。