phpman > perldoc > Web::Scraper::Filter(3pm)

Markdown | JSON | MCP    

NAME
    Web::Scraper::Filter - Base class for Web::Scraper filters

SYNOPSIS
      package Web::Scraper::Filter::YAML;
      use base qw( Web::Scraper::Filter );
      use YAML ();

      sub filter {
          my($self, $value) = @_;
          YAML::Load($value);
      }

      1;

      use Web::Scraper;

      my $scraper = scraper {
          process ".yaml-code", data => [ 'TEXT', 'YAML' ];
      };

DESCRIPTION
    Web::Scraper::Filter is a base class for text filters in Web::Scraper. You can create your own
    text filter by subclassing this module.

    There are two ways to create and use your custom filter. If you name your filter
    Web::Scraper::Filter::Something, you just call:

      process $exp, $key => [ 'TEXT', 'Something' ];

    If you declare your filter under your own namespace, like 'MyApp::Filter::Foo',

      process $exp, $key => [ 'TEXT', '+MyApp::Filter::Foo' ];

    You can also inline your filter function or regexp without creating a filter class:

      process $exp, $key => [ 'TEXT', sub { s/foo/bar/ } ];

      process $exp, $key => [ 'TEXT', qr/Price: (\d+)/ ];
      process $exp, $key => [ 'TEXT', qr/(?<name>\w+): (?<value>\w+)/ ];

    Note that this function munges $_ and returns the count of replacement. Filter code special
    cases if the return value of the callback is number and $_ value is updated.

    You can, of course, stack filters like:

      process $exp, $key => [ '@href', 'Foo', '+MyApp::Filter::Bar', \&baz ];

AUTHOR
    Tatsuhiko Miyagawa

Generated by phpman v4.0 Author: Che Dong Under GNU General Public License
2026-06-15 20:54 @216.73.217.83
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 TransitionalValid CSS!