Generally Speaking

POE is a Perl framework for writing reactive programs. Cooperatively multitasked programs and networking programs are overlapping subsets of reactive programs.

POE implements a single API and bridges from it to other event loops. A program using POE can run under any event loop that POE supports, with little or no modification.

Whitepaper

A whitepaper about POE is available in PDF format. We have made versions in both [US Letter] and [A4] paper sizes for your printing pleasure.

In Detail

POE implements an event dispatcher and one or more runtime task contexts, called sessions. Sessions react to external events, the passage of time, and internal messages. Sessions compartmentalize programs into functional units, and each multitasks cooperatively with others.

Applications may multiprocess by forking or threading at their discretion.

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

Anyone may write and publish POE components. The CPAN contains a [growing list] of them.

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.

POE provides APIs at various levels of abstraction, each with a different trade-off between performance and convenience. Higher level abstractions tend to be very convenient but perform worse because they are generic solutions. Lower-level abstractions do less and are consequently faster and require more work. Programs may mix code from every level of abstraction---the higher level abstractions use the lower level ones internally.

POE natively supports graphical toolkits such as Tk, Gtk, Gtk2, WxWindows. It is the first, most mature, and sometimes only Perl framework to do so.

Articles & Tutorials

Recent articles are present on the front page. Older articles appear in the list of past events. Tutorials and other documentation are available as well.

Silliness

POE is a big wad of potential waiting for your kinetic. It's a mirror reflecting your ideas in code. It's the dingdong in shamalamadingdong. It's the hoho in hohoho, and at least one Po in PoCo. It's the freak in fries. It's a floor topping and a dessert wax. It's all these things and more, even Europa, and you may attempt a landing there.

"What does POE stand for?" is a common question, and people have expanded the acronym in several ways. Here's an alphabetical list of the ones we've heard, including a small number of dissenting opinions. You may contribute your own to this wiki by following the links in the page footer.

Edgar Allan POE... POEtry ... Panel Of Experts ... Parallel Object Executor ... Parcel Out Execution ... Parenthetically Over-Engineered ... Parity Of Evil ... Part Of Elephant ... Particles Of Eternity ... Party On, Ebenezer ... Passed Out from Excitement ... Pathetically Over-Engineered ... Peace On Earth ... People Of Earth ... Perfect Orange Eater ... Perfectly Oblique Eggplant ... Periodically Orbits Earth ... Perl Obfuscation Engine ... Perl Object Environment ... Perl Objects for Enterprises ... Perl Objects for Events ... Perl On Extasy ... Perl Operating Environment ... Perl Operator Extravaganza ... Perl Over Easy ... Perl Over Ethernet ... Perl Overdrive Engine ... Perl, Objects and Events ... Perl: Objectively Excellent ... Perlmud Offers Expansions ... Perpetual Orgone Energy ... Persistent Object Environment ... Persnickity Oblong Erudition ... Perversely Oriented Entities ... Philanthropic Organization Enterprises ... Physician Order Entry ... Piece Of Eden ... Piece Of Eight ... Pigs, Owls, and Elephants ... Piles Of Eugh ... Pious Object Excelsior ... Piracy Over Ethernet ... Pissed Off Elephants ... Plain Old English ... Plastic Orbs Everywhere ... Platonic Object Engine ... Plenty Of Everything ... Plucky Object Engine ... Poe Oracle Environment ... Poe Organizes Everything ... Poe Over Earth ... Point Of Entry ... Polyolester ... Port of Embarkment ... Portal Of Evil ... Possibly Over-Engineered ... Post-Occupancy Evaluation ... Potatoes Of Eternity ... Potentially Omnipotent Entity ... Pow! Oof! Eek! ... Power Operating Environment ... Power Over Ethernet ... Practical Over Extraction ... Practically Overengineered Environment ... Preponderance of Evidence ... Preserve Our Essences ... Pretty Obelisk, Excavated ... Pretty Obfuscation Engine ... Pretty Obtuse Engine ... Pretty Odd Environment ... Price Of Entity ... Princess On Ecstasy ... Probable Obese Elephant ... Product Of Experts ... Products Of Eccentricity ... Prognosis: Over-Engineered ... Program Office Estimate ... Programming Over Easy ... Proliferation Of Events ... Prolifically Over-Eaten ... Purity Of Essence ... Purveyor Of Everything ...

[Acme::POE::Acronym::Generator] can help you come up with others.