---
name: "Message::Passing::Role::Filter"
section: "3pm"
platform: "linux"
package: "libmessage-passing-perl"
version: "0.117-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Message::Passing::Role::Filter"
---

# Message::Passing::Role::Filter(3pm)

Simple abstraction for filtering messages

## NAME

Message::Passing::Role::Filter - Simple abstraction for filtering messages

## SYNOPSIS

```
    package My::Filter;
    use Moo;
    use namespace::clean -except => 'meta';
    with 'Message::Passing::Role::Filter';
    sub filter {
        my ($self, $message) = @_;
        # Do something with $message
        return $message; # Or return undef to halt message!
    }
    1;
```

## DESCRIPTION

Both a producer and a consumer of messages, able to filter out messages based upon their contents, or permute the structure of messages.

## REQUIRED METHODS

### filter

Called to filter the message. Returns the mangled message.

Note if you return undef then the message is not propagated further up the chain, which may be used for filtering out unwanted messages.

## REQUIRED ATTRIBUTES

### output\_to

From Message::Passing::Role::Input.

## METHODS

### consume

Consumers a message, calling the filter method provided by the user with the message.

In the case where the filter returns a message, outputs the message to the next step in the chain.

## SEE ALSO

- Message::Passing

  - Message::Passing::Manual::Concepts

  ## SPONSORSHIP

This module exists due to the wonderful people at Suretec Systems Ltd. \<http://www.suretecsystems.com/\> who sponsored its development for its VoIP division called SureVoIP \<http://www.surevoip.co.uk/\> for use with the SureVoIP API -  \<http://www.surevoip.co.uk/support/wiki/api\_documentation\>

## AUTHOR, COPYRIGHT AND LICENSE

See Message::Passing.
