Search code examples
perlwww-mechanize

How can I extract all links from the page excluding one using Perl's WWW::Mechanize?


I'm trying to use WWW::Mechanize to extract some links from the HTML page using find_all_links() method. It supports matching on these criterias:

  • text
  • text_regex
  • url
  • url_regex
  • url_abs
  • url_abs_regex
    ...

How can I extract all links except one that has text "xyz"?


Solution

  • You can use the 'text_regex' criteria:

    $mech->find_all_links(text_regex => qr/^(?!xyz$).*$/);
    

    See perldoc perlre for more on negative look-ahead assertion.