#!/usr/bin/perl -w use strict; use HTML::Parser; my $parser = HTML::Parser->new(api_version => 3, start_h => [ \&start,"self,tagname,attr" ]); $parser->parse(<URL NameBlah BlahAnother Link

EOFOO for (@{$parser->{urls}}) { print "$_->[0] $_->[1]\n"; } sub start { my ($self,$tag,$attr) = @_; if ( $tag eq 'a' && exists $attr->{href} ) { $self->{_current_url} = $attr->{href}; $self->handler(text => sub { my ( $self,$text ) = @_; $self->{_current_text} .= $text; }, "self, dtext"); $self->handler( end => \&end,"self, tagname"); } } sub end { my ( $self, $tag ) = @_; if ( $tag eq 'a' ) { push @{$self->{urls}},[$self->{_current_url}, $self->{_current_text}]; delete $self->{_current_url}; delete $self->{_current_text}; $self->handler(text => undef); $self->handler(end => undef); } }