YAML::PP::Emitter(3) User Contributed Perl Documentation YAML::PP::Emitter(3)

# [NAME](#NAME)

YAML::PP::Emitter - Emitting events

# [SYNOPSIS](#SYNOPSIS)

```
    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](#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.

# [METHODS](#METHODS)

[new](#new)

```
    my $emitter = YAML::PP::Emitter->new(
        indent => 4,
    );
    
```

Constructor. Currently takes these options:

[indent](#indent)

[writer](#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](#stream_start_event,)

[indent, set\_indent](#indent,)

Getter/setter for number of indentation spaces.

TODO: Currently sequences are always zero-indented.

[writer, set\_writer](#writer,)

Getter/setter for the writer object. By default YAML::PP::Writer. You can pass your own writer if you want to output the resulting YAML yourself.

[init](#init)

Initialize

[finish](#finish)

2026-10-13 perl v5.44.0

---

Document: YAML::PP::Emitter(3pm) from perl-yaml-pp 0.43.0-r0 (Chainguard OS)
Source: https://github.com/perlpunk/YAML-PP-p5.git
