NAME

Net::IRC3::Util - Common utilities that help with IRC protocol handling

SYNOPSIS

use Net::IRC3 qw/parse_irc_msg mk_msg/;

my $msgdata = mk_msg (undef, PRIVMSG 

FUNCTIONS

These are some utility functions that might come in handy when handling the IRC protocol.

You can export these with eg.:

use Net::IRC3 qw/parse_irc_msg/;
parse_irc_msg ($ircline)

This method parses the $ircline, which is one line of the IRC protocol without the trailing "\015\012".

It returns a hash which has the following entrys:

prefix

The message prefix.

command

The IRC command.

params

The parameters to the IRC command in a array reference, this includes the trailing parameter (the one after the ':' or the 14th parameter).

trailing

This is set if there was a trailing parameter (the one after the ':' or the 14th parameter).

mk_msg ($prefix, $command, $trailing, @params)

This function assembles a IRC message. The generated message will look like (pseudo code!)

:<prefix> <command> <params> :<trail>

Please refer to RFC 2812 how IRC messages normally look like.

The prefix and the trailing string will be omitted if they are undef.

EXAMPLES:

mk_msg (undef, "PRIVMSG", "you suck!", "magnus");
# will return: "PRIVMSG magnus :you suck!\015\012"

mk_msg (undef, "JOIN", undef, "#test");
# will return: "JOIN #magnus\015\012"
decode_ctcp ($ircmsg) or decode_ctcp ($line)
split_prefix ($prefix)

This function splits an IRC user prefix as described by RFC 2817 into the three parts: nickname, user and host. Which will be returned as a list with that order.

$prefix can also be a hash like it is returned by parse_irc_msg.

prefix_nick ($prefix)

A shortcut to extract the nickname from the $prefix.

$prefix can also be a hash like it is returned by parse_irc_msg.

prefix_user ($prefix)

A shortcut to extract the username from the $prefix.

$prefix can also be a hash like it is returned by parse_irc_msg.

prefix_host ($prefix)

A shortcut to extract the hostname from the $prefix.

$prefix can also be a hash like it is returned by parse_irc_msg.

AUTHOR

Robin Redeker, <elmex@ta-sa.org>

SEE ALSO

RFC 2812 - Internet Relay Chat: Client Protocol

COPYRIGHT & LICENSE

Copyright 2006 Robin Redeker, all rights reserved.

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