---
name: "HTTP::Proxy::HeaderFilter::simple"
section: "3pm"
platform: "linux"
package: "libhttp-proxy-perl"
version: "0.304-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/HTTP::Proxy::HeaderFilter::simple"
---

# HTTP::Proxy::HeaderFilter::simple(3pm)

A class for creating simple filters

## NAME

HTTP::Proxy::HeaderFilter::simple - A class for creating simple filters

## SYNOPSIS

```
    use HTTP::Proxy::HeaderFilter::simple;
    # a simple User-Agent filter
    my $filter = HTTP::Proxy::HeaderFilter::simple->new(
        sub { $_[1]->header( User_Agent => 'foobar/1.0' ); }
    );
    $proxy->push_filter( request => $filter );
```

## DESCRIPTION

HTTP::Proxy::HeaderFilter::simple can create BodyFilter without going through the hassle of creating a full-fledged class. Simply pass a code reference to the `"filter()"` method of your filter to the constructor, and you'll get the adequate filter.

### Constructor calling convention

The constructor is called with a single code reference. The code reference must conform to the standard `"filter()"` signature for header filters:

```
    sub filter { my ( $self, $headers, $message) = @_; ... }
```

This code reference is used for the `"filter()"` method.

## METHODS

This filter "factory" defines the standard HTTP::Proxy::HeaderFilter methods, but those are only, erm, "proxies" to the actual CODE references passed to the constructor. These "proxy" methods are:

- **filter()**

  - **begin()**

  - **end()**

  Two other methods are actually HTTP::Proxy::HeaderFilter::simple methods, and are called automatically:

- **init()**

  Initialise the filter instance with the code references passed to the constructor.

- **can()**

  Return the actual code reference that will be run, and not the "proxy" methods. If called with any other name than `"begin"` and `"filter"`, it calls `"UNIVERSAL::can()"` instead.

## SEE ALSO

HTTP::Proxy, HTTP::Proxy::HeaderFilter.

## AUTHOR

Philippe "BooK" Bruhat, \<book@cpan.org\>.

## COPYRIGHT

Copyright 2003-2015, Philippe Bruhat.

## LICENSE

This module is free software; you can redistribute it or modify it under the same terms as Perl itself.
