Provided by: libweb-scraper-perl_0.38-1_all bug

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