#!/usr/bin/env perl -l
use strict;
use warnings;
use LWP::Simple;
use Parallel::ForkManager;
my @urls = qw{
http://us.a1.yimg.com/us.yimg.com/i/ww/m5v9.gif
http://hooboy.no-such-host.int/
http://www.yahoo.com
http://www.ora.com/ask_tim/graphics/asktim_header_main.gif
http://www.guardian.co.uk/
http://www.pixunlimited.co.uk/siteheaders/Guardian.gif
};
my $max_processes = $ARGV[0] || 8;
my $pm = Parallel::ForkManager::->new($max_processes);
print 'Start link checking.';
for my $url (@urls) {
$pm->start and next;
my ($type, undef, $mod) = head($url);
if (defined $type) {
print "PASS: $url";
print ' MOD: ', $mod || 0;
}
else {
print "FAIL: $url";
}
$pm->finish;
}
$pm->wait_all_children;
print 'Link checking completed.';
####
$ pm_1199760_parallel_forkmgr_link_checker.pl
Start link checking.
FAIL: http://hooboy.no-such-host.int/
PASS: http://us.a1.yimg.com/us.yimg.com/i/ww/m5v9.gif
MOD: 1354074654
PASS: http://www.guardian.co.uk/
MOD: 0
FAIL: http://www.ora.com/ask_tim/graphics/asktim_header_main.gif
PASS: http://www.yahoo.com
MOD: 0
FAIL: http://www.pixunlimited.co.uk/siteheaders/Guardian.gif
Link checking completed.
##
##
$ pm_1199760_parallel_forkmgr_link_checker.pl 1
Start link checking.
PASS: http://us.a1.yimg.com/us.yimg.com/i/ww/m5v9.gif
MOD: 1354074654
FAIL: http://hooboy.no-such-host.int/
PASS: http://www.yahoo.com
MOD: 0
FAIL: http://www.ora.com/ask_tim/graphics/asktim_header_main.gif
FAIL: http://www.guardian.co.uk/
FAIL: http://www.pixunlimited.co.uk/siteheaders/Guardian.gif
Link checking completed.