I hadn't used HTML::TokeParser::Simple before, but I just tried it now, and it works fine for me even after removing the second call:
my $p = HTML::TokeParser::Simple->new($ARGV[0]);
Only if all the tags your want to capture next, come below the first one ("title"). It's very likely they do.
Can you rewind a HTML::TokeParser::Simple? I don't think you can. But you can go through the tags one at a time, and check if it's one you're interested in, be it "title" or "h1". I wish it provided a way to scan for any of ("title", "h1"). Perhaps it will in the future, I think I'm going to supply a patch to that effect.