I have been using AnyEvent for a while and EV is installed in my computer.
I have the understanding that if EV is installed AnyEvent will try to use it as first resort, but I keep seeing people doing this:
use EV;
use AnyEvent;
From the documentation:
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.
This means it will first check if any of these modules are already loaded and then use it. For example if Tk is loaded but EV not it will use Tk like in the following example:
use Some_Module_Which_Implicitly_loads_Tk;
use AnyEvent;
By explicitly loading EV one makes sure that it is available when doing the probing described above and that it is thus used even if other event loop modules are loaded too.