in reply to On Detecting Broken Links

One problem you may discover with relying on LWP::Simple is that      return head( $url ) || get( $url ); doesn't provide enough information. You need to know why you weren't able to get the URL. In particular, you might want to detect things like loss of connectivity to a site, and not report the link as broken until you've been unable to contact that site for some interval. (You can also use that as an optimization when checking. For example, if you have a lot of links to www.example.com, and you're unable to connect to the site the first time, why bother paying for n-1 additional timeouts?)

And I could swear that merlyn has written a half-dozen columns or so on link checking. Might be worth checking his site.