use HTML::TokeParser;
use LWP::Simple;
my $content = get('http://www.yoursite.com');
my (@alt, $link);
my $parser = HTML::TokeParser->new(\$content) || die $!;
while (my $token = $parser->get_token) {
my $type = shift @{$token};
if ($type eq 'E') {
my ($tag) = @{$token};
$link = 0 if $tag eq 'a';
} elsif ($type eq 'S') {
my ($tag, $attr, $attrseq, $text) = @{$token};
$link = 1 if $tag eq 'a';
next unless $tag eq 'img';
next unless defined $attr->{'alt'} and length $attr->{'alt'};
push @alt, { $attr->{'src'} => $attr->{'alt'} } if $link;
}
}