NAME
FirstGoodURL - determines first successful URL in list
SYNOPSIS
use
FirstGoodURL;
use
strict;
my
@URLs
= (...);
my
$match
;
if
(
$match
= FirstGoodURL->in(
@URLs
)) {
"good URL: $match\n"
;
}
else
{
"no URL was alive\n"
;
}
if
(
$match
= FirstGoodURL->
with
(
'image/png'
)->in(
@URLs
)) {
"PNG found at $match\n"
;
}
else
{
"no PNG found\n"
;
}
if
(
$match
= FirstGoodURL->
with
(200,204)->in(
@URLs
)) {
"Status: OK or No Content at $match\n"
;
}
else
{
"no 200/204 found\n"
;
}
DESCRIPTION
This module uses the LWP suite to scan through a list of URLs. It determines the first URL that returns a specified status code (with defaults to 200
), and optionally, a specified Content-type.
Methods
FirstGoodURL->in(...)
Scans a list of URLs for a specified response code, and possibly a requisite Content-type (see the
with
method below)FirstGoodURL->with(...)
Sets a Content-type and/or Status requisite value for future calls to
in
. It is destructive to the previous settings given, so you must send all settings at once.This is not backward compatible.
The argument list can contain a list of Status response codes, and either a list of Content-type response values or a regex to match acceptable Content-type response values. These can appear in any order. The regex must be a compiled one (formed by using
qr//
).This method returns the class name, so that you can daisy-chain calls for readability/snazziness:
my
$match
= FirstGoodURL->
with
(
qr/image/
)->in(
@URLs
);
TODO
Here is a listing of things that might be added to future versions.
Object support (
with
attributes per object)