/usr/share/perl5/Catmandu/Exporter.pm is in libcatmandu-perl 0.9206-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | package Catmandu::Exporter;
use namespace::clean;
use Catmandu::Sane;
use Catmandu::Util qw(io);
use Moo::Role;
with 'Catmandu::Logger';
with 'Catmandu::Addable';
with 'Catmandu::Counter';
has file => (
is => 'ro',
lazy => 1,
default => sub { \*STDOUT },
);
has fh => (
is => 'ro',
lazy => 1,
default => sub { io($_[0]->file, mode => 'w', binmode => $_[0]->encoding) },
);
after add => sub {
$_[0]->inc_count;
};
sub encoding { ':utf8' }
=head1 NAME
Catmandu::Exporter - Namespace for packages that can export
=head1 SYNOPSIS
package Catmandu::Exporter::Foo;
use Catmandu::Sane;
use Moo;
with 'Catmandu::Exporter'
sub add {
my ($self, $data) = @_;
my $fh = $self->fh;
}
package main;
use Catmandu;
my $exporter = Catmandu->exporter('Foo', file => "/tmp/output.txt");
# Or on the command line
$ catmandu convert JSON to Foo < /tmp/something.txt >/tmp/output.txt
=head1 DESCRIPTION
A Catmandu::Exporter is a Perl package the can export data.
When no options are given exported data is written to
the stdout. Optionally provide a "file" pathname or a "fh" file handle to redirect the
output.
Every Catmandu::Exporter is a L<Catmandu::Fixable> and thus provides a "fix" parameter that
can be set in the constructor. For every "add" or for every item in "add_many" the given
fixes will be applied first. E.g.
Every Catmandu::Exporter is a L<Catmandu::Addable> and inherits the methods "add" and "add_many".
=head1 CONFIGURATION
=over
=item file
Write output to a local file given by its path.
Alternatively a scalar reference can be passed to write to a string.
=item fh
Write the output to an IO::Handle. If not specified, Catmandu::Util::io is
used to create the output stream from the "file" argument or by using STDOUT.
=item encoding
Binmode of the output stream "fh". Set to ":utf8" by default.
=item fix
An ARRAY of one or more fixes or file scripts to be applied to exported items.
=back
=head1 METHODS
=head2 add
Adds one object to be exported.
=head2 add_many
Adds many objects to be exported. This can be either an ARRAY-ref or
an L<Catmandu::Iterator>. Returns a true value when the export was
successful or undef on error.
=head2 count
Returns the number of items exported by this Catmandu::Exporter.
=head2 log
Returns the current logger.
=head1 SEE ALSO
L<Catmandu::Addable>, L<Catmandu::Fix>,L<Catmandu::JSON>,
L<Catmandu::YAML>, L<Catmandu::CSV>, L<Catmandu::RIS>
=cut
1;
|