---
name: "Text::MicroMason::PostProcess"
section: "3pm"
platform: "linux"
package: "libtext-micromason-perl"
version: "2.23-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Text::MicroMason::PostProcess"
---

# Text::MicroMason::PostProcess(3pm)

Apply Filters to All Template Output

## NAME

Text::MicroMason::PostProcess - Apply Filters to All Template Output

## SYNOPSIS

Instead of using this class directly, pass its name to be mixed in:

```
    use Text::MicroMason;
    my $mason = Text::MicroMason->new( -PostProcess );
```

Use the standard compile and execute methods to parse and evaluate templates:

```
  print $mason->compile( text=>$template )->( @%args );
  print $mason->execute( text=>$template, @args );
```

You can define output filters at creation or subsequently:

```
    $mason = Text::MicroMason->new( -PostProcess, post_process => $func );
    $mason->post_processors( $func );
    $mason->compile( text => $template, post_process => $func );
    $mason->execute( text => $template, { post_process => $func }, @args );
```

## DESCRIPTION

This mixin class adds filtering of all template output to any MicroMason class.

Filter functions can accept the string to be output and return a filtered version:

```
  $mason->post_process( sub {
    my $foo = shift;
    $foo =~ s/a-Z/A-Z/;
    return $foo;
  } );
```

If a filter function has an empty prototype, it's assumed to work on `$_:`

```
  $mason->post_process( sub () {
    s/a-Z/A-Z/
  } );
```

### Public Methods

- **post\_processors()**

  Gets and sets the functions to be used for output filtering.

  Called with no arguments, returns the list of filter functions:

  ```
    my @functions = $mason->post_processors();
  ```

  Called with one array-ref argument, sets the list of filter functions:

  ```
    $mason->post_processors( \@functions );
  ```

  Called with one or more function-ref arguments, appends to the list:

  ```
    $mason->post_processors( $filter1, $filter2 );
  ```

### Supported Attributes

- post\_process

  Stores a reference to a function or an array of functions to be used:

  ```
    $mason->{post_process} = $function;
    $mason->{post_process} = [ $function1, $function2 ];
  ```

  You can set this attribute when you create your mason object, or in calls to the compile and execute methods.

### Private Methods

- **post\_process()**

  ```
    $mason->post_process( $output ) : $filtered_output
  ```

  Applies the post-processing filter.

## SEE ALSO

For an overview of this templating framework, see Text::MicroMason.

This is a mixin class intended for use with Text::MicroMason::Base.

For distribution, installation, support, copyright and license  information, see Text::MicroMason::Docs::ReadMe.
