Mathew Snyder wrote: > > I have a script which runs WWW::Mechanize to obtain a page so it can be parsed > for email addresses. However, I can't recall how I'm supposed to use > HTML::TokeParser to get what I need. This is the pertinent part of the > script: > > ... > my $data = $agent->content(); > my $parse = new HTML::TokeParser($data);
If you are supplying an HTML string directly then the 'new' method expects a scalar reference. A simple scalar is assumed to be a filename, and checking the return value from the constructor would have shown your problem. my $parse = new HTML::TokeParser(\$data) or die $!; > my @emails; > my $token; > > while ($data) { $data remains unchanged and will always be true. You need to fetch all the <small> tags in the HTML and exit the loop when there are no more. while ($parse->get_tag('small')) { > $token = $parse->get_trimmed_text("/small"); > push @emails, $token; > } > > foreach my $email (@emails){ > print $email; > }; > > This gives me the error Can't call method "get_trimmed_text" on an undefined > value at ./check_delete_users.pl line 40. > > I had this working at one point but lost the file. What am I missing? The rest should work. HTH, Rob -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>