The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

WWW::Adblock - a simple implementation of Adblock Plus in Perl

SYNOPSIS

  use WWW::Adblock;
  my $adblock = WWW::Adblock->new();
  $adblock->load('/path/to/filters.txt');
  if ($adblock->filter('http://example.com/1x1.gif')) {
    # it matched a filter rule
  }

DESCRIPTION

This is a very simplified implementation of Adblock Plus (the popular browser extension) in Perl. Currently it only supports URI filtering and does not implement the per-element blocking offered by the extension.

Methods

new

  my $adblock = WWW::Adblock->new();
  my $adblock = WWW::Adblock->new( filters => $target );

Creates a new object. If $filters is given it is passed to $adblock->load.

load

  $adblock->load('/path/to/rules.txt');

Loads and parses a ruleset. May be called multiple times, new rules are added to the existing ones.

filter

  # Check a $uri
  $adblock->filter($uri);

  # Check a $uri that appeared on a page on $domain
  $adblock->filter($uri, $domain);

Checks a URI to see whether it matches any rules. Returns 0 for no match, 1 for positive match, 2 for whitelist.

AUTHOR

The idea for this code comes from Adblock Plus. Find out more at http://adblockplus.org/en/.

Implementation in Perl by David Cannings <david@edeca.net>

COPYRIGHT / LICENSE

Copyright (c) 2010 David Cannings. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.