Aww, I was hoping it would automagically figure out which bits of HTML I wanted... ;)
Couple of points to make about this, though:
- Saying use base 'HTML::TokeParser' is IMHO a lot cleaner than that BEGIN mess.
- If your class user provides a URL with angle brackets in and forgets to URI-escape them, you'll pass it as HTML, which probably won't dwim. Perhaps there's a module you could use to check if a file's HTML?
- Using LWP::Simple makes saying that middle bit a lot easier, and since you're not using any of the extra featues of UserAgent its use is redundant here.
Actually, you could solve that middle problem quite neatly by just switching the order of the tests so that it went (file - url - html) rather than (file - html - url), since all URLs acceptable by LWP will have a protocol, and URIs in HTML must be wrapped in a tag.
--
amoe