如何强制 AnyEvent 使用 EV

How to force AnyEvent to use EV

我使用 AnyEvent 有一段时间了,我的电脑里安装了 EV。

我的理解是,如果安装了 EV,AnyEvent 将尝试将其作为首选,但我一直看到人们这样做:

use EV;
use AnyEvent;

来自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.

这意味着它将首先检查是否已经加载了这些模块中的任何一个,然后再使用它。例如,如果 Tk 已加载但 EV 未加载,它将使用 Tk,如下例所示:

use Some_Module_Which_Implicitly_loads_Tk;
use AnyEvent;

通过显式加载 EV,可以确保在进行上述探测时它可用,因此即使其他事件循环模块也被加载也可以使用它。