NAME¶
IO::Handle::Iterator - Iterator based read handle
SYNOPSIS¶
IO::Handle::Iterator->new(sub {
return $next_line; # or undef on eof
});
DESCRIPTION¶
This class lets you define a read handle with a few fallback methods (like
"read") using a single callback that behaves like
"getline".
This is similar but much simpler than:
IO::Handle::Prototype::Fallback->new(
__read => sub { ... },
);
The reason being that the IO::Handle::Prototype::Fallback implementation will
try its very best to behave correctly (i.e. respect the value of $/), whereas
this implementation assumes it's fine to return things that aren't exactly
lines from "getline", so the values are just passed through.
READ BUFFERING¶
When a method that requires buffering is invoked the handle is reblessed to a
subclass which handles buffering.
Calling "getline" again on this object will return the value of the
buffer and return to the normal iterator class.