The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

{
$App::PipeFilter::JsonToTsv::VERSION = '0.005';
}
use Moose;
# TODO - Refactor into a common role? Duplicated in JsonCut.pm.
has o => (
is => 'rw',
isa => 'ArrayRef',
default => sub { die "requires one or more -o flag" },
lazy => 1,
documentation => 'output fields (a subset of the input)',
);
with (
"App::PipeFilter::Role::Reader::Sysread",
"App::PipeFilter::Role::Writer::Print",
"App::PipeFilter::Role::Input::Json",
"App::PipeFilter::Role::Transform::None",
"App::PipeFilter::Role::Output::Tsv",
);
1;
__END__
=pod
=head1 NAME
App::PipeFilter::JsonToTsv - translate streams of JSON objects into tab-separated columns
=head1 VERSION
version 0.005
=head1 SYNOPSIS
Here is the json2tsv(1) pipeline filter.
#!/usr/bin/perl
use App::PipeFilter::JsonToTsv;
exit App::PipeFilter::JsonToTsv->new_with_options()->run();
=head1 DESCRIPTION
App::PipeFilter::JsonToTsv implements the json2tsv(1) pipeline filter.
It's modeled after cut(1), except that it reads JSON objects and
writes a stream of tab-separated rows.
=head1 SEE ALSO
You may read this module's implementation in its entirety at
perldoc -m App::PipeFilter::JsonToTsv
This module doesn't implement anything of its own. It customizes
L<App::PipeFilter::Generic> with the following roles:
L<App::PipeFilter::Role::Reader::Sysread>,
L<App::PipeFilter::Role::Input::Json>,
L<App::PipeFilter::Role::Transform::None> and
L<App::PipeFilter::Role::Output::Tsv>.
L<App::PipeFilter> has top-level documentation including a table of
contents for all the libraries and utilities included in the project.
=head1 BUGS
=head1 REPOSITORY
=head1 COPYRIGHT AND LICENSE
App::PipeFilter::JsonToTsv
is Copyright 2011 by Rocco Caputo.
All rights are reserved.
App::PipeFilter::JsonToTsv
is released under the same terms as Perl itself.
=cut
# vim: ts=2 sw=2 expandtab