AnyEvent provides an identical interface to multiple event loops. This allows module authors to utilize an event loop without forcing module users to use the same event loop (as only a single event loop can coexist peacefully at any one time). The interface itself is vaguely similar but not identical to the Event module. On the first call of any method, the module tries to detect the currently loaded event loop by probing for an already-loaded event loop, such as Glib or Event. The first one found is used. If none is found, the module tries to load an event module, and failing that, it will fall back to an optimized pure Perl implementation.
Device::ParallelPort is a Perl API that allows low level access to the parallel port of most computers. It does this by using a number of drivers, which can be customized and added to, including Linux (direct and parport), Win32, Script, Dummy, and more. It also contains a number of direct access devices including an example printer and a relay controller card.