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

NAME

Mojo::IOLoop::LineReader

VERSION

version 0.3

SYNOPSIS

  use Mojo::IOLoop::LineReader;

  # Create reader
  my $reader = Mojo::IOLoop::LineReader->new($handle);
  $reader->on(readln => sub {
    my ($reader, $line) = @_;
    ...
  });
  $reader->on(close => sub {
    my $reader = shift;
    ...
  });
  $reader->on(error => sub {
    my ($reader, $err) = @_;
    ...
  });

  # Start and stop watching for new data
  $reader->start;
  $reader->stop;

  # Start reactor if necessary
  $reader->reactor->start unless $reader->reactor->is_running;

DESCRIPTION

Mojo::IOLoop::LineReader is a subclass of Mojo::IOLoop::Stream that implements reading from a handle line by line.

NAME

Mojo::IOLoop::LineReader - Non-blocking line-oriented input stream

EVENTS

Mojo::IOLoop::LineReader inherits all events from Mojo::IOLoop::Stream and can emit the following new ones.

readln

  $reader->on(readln => sub {
    my ($reader, $line) = @_;
    ...
  });

When data arrives on the stream, it is broken down into lines. This event is emitted for each such line.

ATTRIBUTES

Mojo::IOLoop::LineReader inherits all attributes from Mojo::IOLoop::Stream and implements the following new ones.

input_record_separator

  my $rs = $reader->input_record_separator;
  $reader = $reader->input_record_separator("");

Line separator to use when breaking input to lines, defaults to the value of $/ at construction time.

METHODS

Mojo::IOLoop::LineReader inherits all methods from Mojo::IOLoop::Stream and implements the following new ones.

new

  my $reader = Mojo::IOLoop::LineReader->new($handle);

Construct a new Mojo::IOLoop::LineReader object and subscribe to "read" in Mojo::IOLoop::Stream and "close" in Mojo::IOLoop::Stream events with special handlers.

SEE ALSO

Mojo::IOLoop::Stream, MojoX::LineStream.

ACKNOWLEDGEMENTS

Jan Henning Thorsen and Joel Berger for advice and code on #mojo.

The development of this library has been partially sponsored by Connectivity, Inc.

AUTHOR

Adriano Ferreira <ferreira@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2017 by Adriano Ferreira.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.