POE is a pure Perl event framework that allows you to create separated "threads" of work. Basically you set up event handlers and then those handlers are called when the appropriate events occur. Events can be generated by things like incoming data on a network socket or a GUI button being pushed, or by the handlers themselves, to execute the next step in some process for example.
There's a nice turorial over at the POE site called Evolution of a POE Server that might help shed some light. Also, you should browse through the POE Cookbook to get a feel for the types of things you can do with POE.