```{index} single: YAML::PP::Emitter ``` # YAML::PP::Emitter Emitting events ## SYNOPSIS ```perl my $emitter = YAML::PP::Emitter->new( indent => 4, ); $emitter->init; $emitter->stream_start_event; $emitter->document_start_event({ implicit => 1 }); $emitter->sequence_start_event; $emitter->scalar_event({ value => $input, style => $style }); $emitter->sequence_end_event; $emitter->document_end_event({ implicit => 1 }); $emitter->stream_end_event; my $yaml = $emitter->writer->output; $emitter->finish; ``` ## DESCRIPTION The emitter emits events to YAML. It provides methods for each event type. The arguments are mostly the same as the events from [YAML::PP::Parser](https://metacpan.org/pod/YAML::PP::Parser). ## METHODS - new ```perl my $emitter = YAML::PP::Emitter->new( indent => 4, ); ``` Constructor. Currently takes these options: - indent - writer - stream\_start\_event, stream\_end\_event, document\_start\_event, document\_end\_event, sequence\_start\_event, sequence\_end\_event, mapping\_start\_event, mapping\_end\_event, scalar\_event, alias\_event - indent, set\_indent Getter/setter for number of indentation spaces. TODO: Currently sequences are always zero-indented. - writer, set\_writer Getter/setter for the writer object. By default [YAML::PP::Writer](Writer.md). You can pass your own writer if you want to output the resulting YAML yourself. - init Initialize - finish