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-2013, Philippe Bruhat.
LICENSE¶
This module is free software; you can redistribute it or modify it under the
same terms as Perl itself.