I'm working on HTML::TokeParser::Simple, version 3.0. Changes:
Item 1 is because return_foo is a horrible method name and I, the author, keep forgetting it. Still, this module is popular enough that I worry quite a bit about changing the API, even though I don't plan on removing deprecated methods for a long time.
However, the one thing tha keeps bugging me is my desire to solve vegasjoe's problem. This is probably the most common question that I field. If you have an HTML document in a file, it's easy to parse:
my $parser = HTML::TokeParser::Simple->new($file);Of course, that's because I just inherit from HTML::TokeParser and don't worry about what's behind the scenes. However, what I really want to do is make this work:
my $parser = HTML::TokeParser::Simple->new($html_in_a_string);Currently, people seem to get really confused because it's not intuitive to take a reference to a scalar to parse in-memory HTML. I'll probably do something like:
sub new_from_scalar { my ($class, $scalar) = @_; return $class->new(\$scalar); }
Ultimately, I think we'll have the following constructors:
my $parser1 = HTML::TokePaser::Simple->new($file); works my $parser2 = HTML::TokePaser::Simple->new($file_handle); my $parser3 = HTML::TokePaser::Simple->new_from_scalar($string); my $parser4 = HTML::TokePaser::Simple->new_from_fqdn($fqdn);
Feedback and advice welcome.
Cheers,
Ovid
New address of my CGI Course.
In reply to HTML::TokeParser::Simple advice requested by Ovid
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |