
Anyevent is not an event model itself, it only interfaces to whatever event model the main program happens to use, in a pragmatic way. for event models, the statement "there can only be one" is a bitter reality: in general, only one event loop can be active at the same time in a process. this module cannot change this, but it can hide the differences between them.
the goal of anyevent is to offer module authors the ability to do event programming (waiting for i/o or timer events) without subscribing to a religion, a way of living, and most importantly: without forcing your module users into the same thing by forcing them to use the same event model you use.
during the first call of any watcher-creation method, the module tries to detect the currently loaded event loop by probing whether one of the following modules is already loaded: ev, anyevent::loop, event, glib, tk, event::lib, qt, poe. the first one found is used. if none are detected, the module tries to load the first four modules in the order given; but note that if ev is not available, the pure-perl anyevent::loop should always work, so the other two are not normally tried.