NAME

Text::APL::Reader - reader

DESCRIPTION

Reads a template from various sources. Accepts a subroutine for a custom implementation.

Returns a reference to subroutine. When called accepts another reference to subroutine that is called upon receiving a chunk of the template.

For example a reader from a scalar reference is implemented as:

$reader = sub {
    my ($cb) = @_;

    $cb->(${$input_string});
    $cb->();
};

The first call on cb notifies Text::APL about the template chunk and second without arguments notifies Text::APL about EOF.

The following sources are implemented:

$reader->(\$scalar);
$reader->($filename);
$reader->($filehandle);
$reader->(sub {...custom code...});

Custom subroutines are used for non-blocking template reading. See examples/ directory for an example using IO::AIO for non-blocking template reading.

METHODS

build

Build a reader.