---
name: "POE::Filter::IRCD"
section: "3pm"
platform: "linux"
package: "libpoe-filter-ircd-perl"
version: "2.44-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/POE::Filter::IRCD"
---

# POE::Filter::IRCD(3pm)

A POE-based parser for the IRC protocol

## NAME

POE::Filter::IRCD - A POE-based parser for the IRC protocol

## VERSION

version 2.44

## SYNOPSIS

```
    use POE::Filter::IRCD;
    my $filter = POE::Filter::IRCD->new( debug => 1, colonify => 0 );
    my $arrayref = $filter->get( [ $hashref ] );
    my $arrayref2 = $filter->put( $arrayref );
    use POE qw(Filter::Stackable Filter::Line Filter::IRCD);
    my ($filter) = POE::Filter::Stackable->new();
    $filter->push( POE::Filter::Line->new( InputRegexp => '\015?\012', OutputLiteral => "\015\012" ),
                   POE::Filter::IRCD->new(), );
```

## DESCRIPTION

POE::Filter::IRCD provides a convenient way of parsing and creating IRC protocol lines. It provides the parsing engine for POE::Component::Server::IRC and POE::Component::IRC. A standalone version exists as Parse::IRC.

## CONSTRUCTOR

- "new"

  Creates a new POE::Filter::IRCD object. Takes two optional arguments:

  ```
    'debug', which will print all lines received to STDERR;
    'colonify', set to 1 to force the filter to always colonify the last param passed in a put(),
                default is 0. See below for more detail.
  ```

## METHODS

- "get\_one\_start"

  - "get\_one"

  - "get\_pending"

  - "get"

  Takes an arrayref which is contains lines of IRC formatted input. Returns an arrayref of hashrefs which represents the lines. The hashref contains the following fields:

  ```
    prefix
    command
    params ( this is an arrayref )
    raw_line
  ```

  For example, if the filter receives the following line, the following hashref is produced:

  ```
    LINE: ':moo.server.net 001 lamebot :Welcome to the IRC network lamebot'
    HASHREF: {
                  prefix   => ':moo.server.net',
                  command  => '001',
                  params   => [ 'lamebot', 'Welcome to the IRC network lamebot' ],
                  raw_line => ':moo.server.net 001 lamebot :Welcome to the IRC network lamebot',
             }
  ```

- "put"

  Takes an arrayref containing hashrefs of IRC data and returns an arrayref containing IRC formatted lines. Optionally, one can specify 'colonify' to override the global colonification option. eg.

  ```
    $hashref = {
                  command => 'PRIVMSG',
                  prefix => 'FooBar!foobar@foobar.com',
                  params => [ '#foobar', 'boo!' ],
                  colonify => 1, # Override the global colonify option for this record only.
                };
    $filter->put( [ $hashref ] );
  ```

- "clone"

  Makes a copy of the filter, and clears the copy's buffer.

- "debug"

  With a true or false argument, enables or disables debug output respectively. Without an argument the behaviour is to toggle the debug status.

## SEE ALSO

POE

POE::Filter

POE::Filter::Stackable

POE::Component::Server::IRC

POE::Component::IRC

Parse::IRC

## AUTHOR

Chris Williams \<chris@bingosnet.co.uk\>

## COPYRIGHT AND LICENSE

This software is copyright (c) 2013 by Chris Williams and Jonathan Steinert.

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