What is POE in the first place?

If you've been following perl.com lately I'm sure you've seen the article there about it. If not I'll quote from the introduction to POE article by Dennis Taylor with Jeff Goff.

"POE is a framework for building Perl programs that lends itself naturally to tasks which involve reacting to external data, such as network communications or user interfaces. Programs written in POE are completely non-linear; you set up a bunch of small subroutines and define how they all call each other, and POE will automatically switch between them while it's handling your program's input and output."

POE provides us with a tremendous amount of power. We can create multiple "sessions" with it, which is similar to threading. It allows us to use Components which can do anything from pull HTTP pages to get on IRC.

What is POE::Component::IRC?

P::C::I (as it's referred to in short) is a POE Component. POE Components are essentially preprogrammed sessions that can be controlled by other sessions. In the case of POE::Component::IRC we can connect to an IRC server. In many ways a P::C::I program is similar to a Net::IRC based program which Sandy told you about tonight. And in fact both modules are written by Dennis Taylor and a lot of the code of P::C::I was recycled from Net::IRC!

Why use P::C::I then?

There are several reasons why P::C::I should be preferred over the Net::IRC module.

Why wouldn't you want to use P::C::I

Demo LiMuBai If Possible

LiMuBai is the bot that I've been writing in P::C::I. A copy of the current source is viewable here.

Questions.

If time allows...

P.S. I know this is rather rough and unpolished. I threw this together with 2 days notice.