---
name: "Data::Stag::Writer"
section: "3pm"
platform: "linux"
package: "libdata-stag-perl"
version: "0.14-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Data::Stag::Writer"
---

# Data::Stag::Writer(3pm)

## NAME

```
  Data::Stag::Writer - base class for all Writers
```

## SYNOPSIS

```
  # Abstract class - do not use directly
  package MyOutputter;
  use base qw(Data::Stag::Writer);
  sub e_foo {
    my ($self, $foo) = @_;
    $self->writef("data1: %s\n", $foo->get_data1);
    return;
  }
```

## DESCRIPTION

base mixin class for all writers

## INHERITANCE

```
    This inherits from L<Data::Stag::BaseHandler>
```

## PUBLIC METHODS -

*new*

```
       Title: new
        Args: [fn str], [fh FILEHANDLE]
      Return: L<Data::Stag::BaseHandler>
     Example: $w = MyWriter->new(-fh=>$fh);
```

returns the tree that was built from all uncaught events

*file*

```
       Title: file
        Args: filename str
     Returns: filename str
     Example: $handler->file("my_output_file.txt");
```

Setting this will cause all output to be diverted to this file; the file will be overwritten by default. The filehandle will not be opened unless any events are thrown

For more fine-grained control, use `$handler`-\>**fh()**

*fh*

```
       Title: fh
        Args: filehandle FH
     Returns: filehandle FH
     Example: $handler->fh(\*STDOUT);
```

Gets/Sets the output filehandle for the writer

*safe\_fh*

```
       Title: safe_fh
        Type: PROTECTED
        Args: filehandle FH
     Returns: filehandle FH
     Example: $handler->fh(\*STDOUT);
```

As **fh()**, but makes sure that the filehandle is initialized

You should use this if you are overriding this class

*write*

```
       Title: write
        Type: PROTECTED
        Args: message str
     Returns:
     Example: $self->write($stag->get_blah);
```

writes output

to be used by classes that subclass this one

*writef*

```
       Title: writef
```

As write, analogous to printf

### use\_color

```
  Usage   -
  Returns -
  Args    -
```
