---
name: "HTTP::Proxy::BodyFilter::lines"
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::BodyFilter::lines"
---

# HTTP::Proxy::BodyFilter::lines(3pm)

A filter that outputs only complete lines

## NAME

HTTP::Proxy::BodyFilter::lines - A filter that outputs only complete lines

## SYNOPSIS

```
    use HTTP::Proxy::BodyFilter::lines;
    use MyFilter;    # this filter only works on complete lines
    my $filter = MyFilter->new();
    # stack both filters so that they'll handle text/* responses
    $proxy->push_filter(
        mime     => 'text/*',
        response => HTTP::Proxy::BodyFilter::lines->new,
        response => $filter
    );
    # I want my lines to end with '!'
    # This is equivalent to $/ = '!' in a normal Perl program
    my $lines = HTTP::Proxy::BodyFilter::lines->new('!');
```

## DESCRIPTION

The HTTP::Proxy::BodyFilter::lines filter makes sure that the next filter in the filter chain will only receive complete lines. The "chunks" of data received by the following filters with either end with `"\n"` or will be the last piece of data for the current HTTP message body.

You can change the idea the filter has of what is a line by passing to its constructor the string it should understand as line ending. `"\n"` is the default value.

```
    my $filter = HTTP::Proxy::BodyFilter::lines->new( $sep );
```

This is similar to modifying `$/` in a Perl program. In fact, this filter has a behaviour so similar to modifying $/ that it also knows about "paragraph mode" and "record mode".

Note that the "slurp" mode is not supported. Please use HTTP::Proxy::BodyFilter::complete to enable the generic store and forward filter mechanism.

## METHODS

This filter defines the following methods, which are automatically called:

- **init()**

  Initialise the filter with the EOL information.

- **filter()**

  Keeps unfinished lines for later.

- **will\_modify()**

  This method returns a *false* value, thus indicating to the system that it will not modify data passing through.

## SEE ALSO

HTTP::Proxy, HTTP::Proxy::BodyFilter.

## 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.
