POE is a framework for creating multitasking programs in Perl.

POE parcels out execution time among one or more tasks, called
sessions.  Sessions multitask through cooperation (at least until
Perl's threads become mainstream).  That is, each session returns
execution to POE as quickly as possible so it can parcel out time to
the next.

POE includes a high-level component architecture.  Components are
modular, reusable pieces of programs.  They perform common, often
tedious tasks so programmers can work on more interesting things.

POE provides medium- and low-level concurrency functions.  Components
use them to perform their tasks.  The functions are also available to
programmers who prefer to avoid the overhead of components at the
expense of writing more code.  Components and custom sessions coexist
because they all use the same basic functions.

POE supports graphical toolkits such as Tk and Gtk.  It is the only
Perl programming framework that does this.  It also supports Curses,
HTTP, and other user interfaces.  POE programs can present multiple
user interfaces at once.

Homepage:
http://poe.perl.org/
