HTML::Parser is not the easiest way of parsing HTML.
Besides Corion's suggestion about HTML::HeadParser, if
you need to parse more than the document's title, you may
want to get acquainted with HTML::TokeParser. Here
is a way of finding the title:
#!/usr/bin/perl
use strict;
use warnings;
use HTML::TokeParser;
my $p = HTML::TokeParser->new('index.html') or die "can't open\n";
while (my $token = $p->get_token)
{
if ($token->[0] eq "S" and lc $token->[1] eq 'title')
{
my $title = $p->get_text() || "<NO TITLE FOUND>";
print "$title\n";
last;
}
}