POE is an event driven framework for networking and multitasking. To understand POE, it's important first to understand events and event driven programming.
In the abstract sense, events are real-world things that happen. The morning alarm has gone off. The toaster has popped. Tea is done. In user interfaces the most common real-world events are mouse movements, button presses, and keystrokes.
Software events are tokens that represent these abstract occurrences. They not only convey external activity into a program, but they also indicate when internal activity happens. A timer has gone off. A socket has established its connection. A download is done.
In event driven programs, a central dispatcher hands out events to functions that react to them. The reactive functions are called event handlers because it's their job to handle events.
POE's event handlers are cooperative. No two handlers may run at once. Even POE's dispatcher is suspended while an event handler is running. Handlers therefore have an opportunity to monopolize a program. They cooperate by returning as quickly as possible, allowing other parts of the program to run with only minimal delays.
Casiano Rodríguez León