Catmandu::Exporter(3) Namespace for packages that can export


package Catmandu::Exporter::Foo;
use Catmandu::Sane;
use Moo;
with 'Catmandu::Exporter'
sub add {
my ($self, $data) = @_;
my $fh = $self->fh;
$fh->print( ... );
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


A Catmandu::Exporter is a Perl package that can export data. By default, data items are written to STDOUT. Optionally provide a "file" or "fh" parameter to write to a file, string, or handle. New exporter modules are expected to use the "print" method of "fh".

Every Catmandu::Exporter is a Catmandu::Fixable thus provides a "fix" parameter and method to apply fixes to exported items.

Every Catmandu::Exporter is a Catmandu::Addable thus inherits the methods "add" and "add_many".


Write output to a local file given by its path or file handle. Alternatively a scalar reference can be passed to write to a string and a code reference can be used to write to a callback function.
Write the output to an IO::Handle. If not specified, Catmandu::Util::io is used to create the output handle from the "file" argument or by using STDOUT.
Binmode of the output stream "fh". Set to "":utf8"" by default.
An ARRAY of one or more fixes or file scripts to be applied to exported items.



Adds one object to be exported.


Adds many objects to be exported. This can be either an ARRAY-ref or an Catmandu::Iterator. Returns a true value when the export was successful or undef on error.


Returns the number of items exported by this Catmandu::Exporter.


Returns the current logger.