http://poe.perl.org/
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.
Several
POE components have been written to handle client, server, and
peer networking tasks. Because of them,
POE has become a convenient
and quick way to write multitasking network applications.
Anyone can write and publish
POE components. The
CPAN contains a
steadily growing
list of them. The
POE Components List includes ones that haven't
been uploaded to the
CPAN yet.
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.