---
name: "TAP::Parser::YAMLish::Writer"
section: "3p"
platform: "openbsd"
package: "man"
version: "8.0-current-20261101"
release: "OpenBSD 8.0-current (2026-11-01)"
platforms: ["openbsd"]
url: "https://new.carta.tech/TAP::Parser::YAMLish::Writer"
---

# TAP::Parser::YAMLish::Writer(3p)

Write YAMLish data

## NAME

TAP::Parser::YAMLish::Writer - Write YAMLish data

## VERSION

Version 3.50

## SYNOPSIS

```
    use TAP::Parser::YAMLish::Writer;

    my $data = {
        one => 1,
        two => 2,
        three => [ 1, 2, 3 ],
    };

    my $yw = TAP::Parser::YAMLish::Writer->new;

    # Write to an array...
    $yw->write( $data, \@some_array );

    # ...an open file handle...
    $yw->write( $data, $some_file_handle );

    # ...a string ...
    $yw->write( $data, \$some_string );

    # ...or a closure
    $yw->write( $data, sub {
        my $line = shift;
        print "$line\n";
    } );
```

## DESCRIPTION

Encodes a scalar, hash reference or array reference as YAMLish.

## METHODS

### Class Methods

*"new"*

```
 my $writer = TAP::Parser::YAMLish::Writer->new;
```

The constructor `"new"` creates and returns an empty `"TAP::Parser::YAMLish::Writer"` object.

### Instance Methods

*"write"*

```
 $writer->write($obj, $output );
```

Encode a scalar, hash reference or array reference as YAML.

```
    my $writer = sub {
        my $line = shift;
        print SOMEFILE "$line\n";
    };

    my $data = {
        one => 1,
        two => 2,
        three => [ 1, 2, 3 ],
    };

    my $yw = TAP::Parser::YAMLish::Writer->new;
    $yw->write( $data, $writer );
```

The ` $output ` argument may be:

- •

  a reference to a scalar to append YAML to

- •

  the handle of an open file

- •

  a reference to an array into which YAML will be pushed

- •

  a code reference

If you supply a code reference the subroutine will be called once for each line of output with the line as its only argument. Passed lines will have no trailing newline.

## AUTHOR

Andy Armstrong, \<andy@hexten.net\>

## SEE ALSO

YAML::Tiny, YAML, YAML::Syck, Config::Tiny, CSS::Tiny, \<http://use.perl.org/~Alias/journal/29427\>

## COPYRIGHT

Copyright 2007-2011 Andy Armstrong.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

The full text of the license can be found in the LICENSE file included with this module.
