use HTML::Parser;
$p = new HTML::Parser(start_h => [\&start, "tagname"],
end_h => [\&end, "tagname"],
default_h => [\&default, "text"]);
$p->parse($some_html);
$p->parsefile(\*SOME_FH);
sub start {
my ($tagname) = @_;
$in_a = 1 if $tagname eq 'a';
}
sub end {
my ($tagname) = @_;
$in_a = 0 if $tagname eq 'a';
}
sub default {
my ($text) = @_;
# do something with text if $in_a
}