how can I programmatically determine errors like this from LWP?
The LWP::Simple POD for get explains:
You will not be able to examine the response code or response headers (like 'Content-Type') when you are accessing the web using this function. If you need that information you should use the full OO interface (see the LWP::UserAgent manpage).
However, there is (kinda) a way around it. If you look at getprint(), it returns an HTTP error code, but of course, you probably want the content in your program, not sent to stdout. So, the trick I've used in the past is to open a ramfile and select it before calling getprint(). That way you get the content into a variable and the status code:
my $content; open RAM, '>', \$content; my $stdoutsaved = select; select *RAM; my $status = getprint( $url ); select $stdoutsaved; close RAM; ## Now the status is in $status and the content in $content.
Quite why get() wasn't implement to return both:
my( $status, $content ) = get( $url );
I guess we'll never know, but it is unlikely to change now.
In reply to Re: Where is LWP::Simple::get error information stored?
by BrowserUk
in thread Where is LWP::Simple::get error information stored?
by ajam
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |