| File-Dir-Dumper documentation | Contained in the File-Dir-Dumper distribution. |
File::Dir::Dumper::Stream::JSON::Reader - reader for stream of JSON objects.
Version 0.0.7
use File::Dir::Dumper::Stream::JSON::Reader;
my $reader = File::Dir::Dumper::Stream::JSON::Reader->new(
{
input => \*FILEHANDLE,
}
);
while (defined(my $token = $reader->fetch())
{
# Do something with $token.
}
Initializes a new object that reads from the filehandle $in_filehandle.
Fetches the next object. Returns undef upon end of file.
Shlomi Fish, <shlomif@cpan.org>
Please report any bugs or feature requests to bug-file-dir-dumper at rt.cpan.org, or through
the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=File-Dir-Dumper. I will be notified, and then you'll
automatically be notified of progress on your bug as I make changes.
You can find documentation for this module with the perldoc command.
perldoc File::Dir::Dumper
You can also look for information at:
Copyright 2008 Shlomi Fish, all rights reserved.
This program is released under the following license: MIT/X11 Licence.
| File-Dir-Dumper documentation | Contained in the File-Dir-Dumper distribution. |
package File::Dir::Dumper::Stream::JSON::Reader; use warnings; use strict; use base 'File::Dir::Dumper::Base'; use Carp; use JSON; __PACKAGE__->mk_accessors(qw(_in));
our $VERSION = '0.0.7';
sub _init { my $self = shift; my $args = shift; $self->_in($args->{input}); $self->_init_stream(); return; } sub _readline { my $self = shift; return readline($self->_in()); } sub _eof { my $self = shift; return eof($self->_in()); } sub _init_stream { my $self = shift; if ($self->_readline() ne "# JSON Stream by Shlomif - Version 0.2.0\n") { Carp::confess "No header for JSON stream"; } return; } sub fetch { my $self = shift; my $buffer = ""; my $line; if ($self->_eof()) { return; } LINES: while (!$self->_eof()) { $line = $self->_readline(); if ($line eq "--/f\n") { return from_json($buffer); } else { $buffer .= $line; } } Carp::confess "Error! Reached end of file without record terminator."; }
1; # End of File::Dir::Dumper