POE::Component::IRC::Common(3)

NAME
POE::Component::IRC::Common - provides a set of common functions for the POE::Component::IRC suite.

SYNOPSIS
  use strict;
  use warnings;

  use POE::Component::IRC::Common qw( :ALL );

  my $nickname = '^Lame|BOT[moo]';

  my $uppercase_nick = u_irc( $nickname );
  my $lowercase_nick = l_irc( $nickname );

  my $mode_line = 'ov+b-i Bob sue stalin*!*@*';
  my $hashref = parse_mode_line( $mode_line );

  my $banmask = 'stalin*';
  $full_banmask = parse_ban_mask( $banmask );

  if ( matches_mask( $full_banmask, 'stalin!joe@kremlin.ru' ) ) {
        print "EEK!";
  }

  my $results_hashref = matches_mask_array( \@masks, \@items_to_match_against );

  my $nick = parse_user( 'stalin!joe@kremlin.ru' );
  my ($nick,$user,$host) = parse_user( 'stalin!joe@kremlin.ru' );

DESCRIPTION
POE::Component::IRC::Common provides a set of common functions for the POE::Component::IRC suite. There are included functions for uppercase and lowercase nicknames/channelnames and for parsing mode lines and ban masks.

FUNCTIONS

u_irc
    Takes one mandatory parameter, a string to convert to IRC uppercase, and one optional parameter, the casemapping of the ircd ( which can be 'rfc1459', 'strict-rfc1459' or 'ascii'. Default is 'rfc1459' ). Returns the IRC uppercase equivalent of the passed string.

l_irc
    Takes one mandatory parameter, a string to convert to IRC lowercase, and one optional parameter, the casemapping of the ircd ( which can be 'rfc1459', 'strict-rfc1459' or 'ascii'. Default is 'rfc1459' ). Returns the IRC lowercase equivalent of the passed string.

parse_mode_line
    Takes a list representing an IRC mode line. Returns a hashref. If the modeline couldn't be parsed the hashref will be empty. On success the following keys will be available in the hashref:

       'modes', an arrayref of normalised modes;
       'args', an arrayref of applicable arguments to the modes;

    Example:

       my $hashref = parse_mode_line( 'ov+b-i', 'Bob', 'sue', 'stalin*!*@*' );

       $hashref will be
       {
            'modes' => [ '+o', '+v', '+b', '-i' ],
            'args'  => [ 'Bob', 'sue', 'stalin*!*@*' ],
       };

parse_ban_mask
    Takes one parameter, a string representing an IRC ban mask. Returns a normalised full banmask.

    Example:

       $fullbanmask = parse_ban_mask( 'stalin*' );

       $fullbanmask will be 'stalin*!*@*';

matches_mask
    Takes two parameters, a string representing an IRC mask ( it'll be processed with parse_ban_mask() to ensure that it is normalised ) and something to match against the IRC mask, such as a nick!user@hostname string. Returns 1 if they match, 0 otherwise. Returns undef if parameters are missing. Optionally, one may pass the casemapping ( see u_irc() ), as this function ises u_irc() internally.

matches_mask_array
    Takes two array references, the first being a list of strings representing IRC mask, the second a list of somethings to test against the masks. Returns an empty hashref if there are no matches. Matches are returned are arrayrefs keyed on the mask that they matched.

parse_user
    Takes one parameter, a string representing a user in the form nick!user@hostname. In a scalar context it returns just the nickname. In a list context it returns a list consisting of the nick, user and hostname, respectively.

AUTHOR
Chris 'BinGOs' Williams

SEE ALSO
POE::Component::IRC