use HTML::TokeParser; my $p = HTML::TokeParser->new(\q[ ]); use Data::Dumper; while(defined(my $t = $p->get_tag('bold'))){ print Dumper($t); } my $t = $p->get_token() ; print "no more tokens, see " . ( defined $t ? Dumper($t) : "undef" ); __END__ $VAR1 = [ 'bold', {}, [], '' ]; no more tokens, see undef