POE is a framework for cooperative, event driven multitasking and networking in Perl. Other languages have similar frameworks. Python has Twisted. TCL has "the event loop".
POE provides a unified interface for several other event loops, including select(), IO::Poll, Glib, Gtk, Tk, Wx, and Gtk2. Many of these event loop interfaces were written by others, with the help of POE::Test::Loops. They may be found on the CPAN.
POE achieves its high degree of portability to different operating systems and Perl versions by being written entirely in Perl. CPAN hosts optional XS modules for POE if speed is more desirable than portability.
POE is designed in layers. Each layer builds atop the lower level ones. Programs are free to use POE at any level of abstraction, and different levels can be mixed and matched seamlessly within a single program. Remember, though, that higher-level abstractions often require more resources than lower-level ones. The conveniences they provide are not free.
POE's bundled abstraction layers are the tip of a growing iceberg. Sprocket, POE::Stage, and other CPAN distributions build upon this work. You're encouraged to look around.
No matter how high you go, though, it all boils down to calls to POE::Kernel. So your down-to-earth code can easily cooperate with stratospheric systems.
Package Version | Update ID | Released | Package Hub Version | Platforms | Subpackages |
---|---|---|---|---|---|
1.370-bp156.2.1 info | GA Release | 2023-07-22 | 15 SP6 |
|
|
1.370-bp155.1.5 info | GA Release | 2023-05-17 | 15 SP5 |
|
|
1.368-bp154.1.28 info | GA Release | 2022-05-10 | 15 SP4 |
|
|
1.368-bp153.1.12 info | GA Release | 2021-03-06 | 15 SP3 |
|
|
1.368-bp152.1.10 info | GA Release | 2020-04-16 | 15 SP2 |
|
|
1.367-bp151.3.1 info | GA Release | 2019-07-16 | 15 SP1 |
|
|
1.367-bp151.2.13 info | GA Release | 2019-05-18 | 15 SP1 |
|
|
1.367-bp150.2.4 info | GA Release | 2018-07-30 | 15 |
|
|