AnyEvent

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN


    AnyEvent::DBI
        Executes DBI requests asynchronously in a proxy process for you,
        notifying you in an event-based way when the operation is finished.

    AnyEvent::FastPing
        The fastest ping in the west.

    Coro
        Has special support for AnyEvent via Coro::AnyEvent, which allows
        you to simply invert the flow control - don't call us, we will call
        you:

           async {
              Coro::AnyEvent::sleep 5; # creates a 5s timer and waits for it
              print "5 seconds later!\n";

              Coro::AnyEvent::readable *STDIN; # uses an I/O watcher
              my $line = <STDIN>; # works for ttys

              AnyEvent::HTTP::http_get "url", Coro::rouse_cb;
              my ($body, $hdr) = Coro::rouse_wait;
           };

SIMPLIFIED AE API
    Starting with version 5.0, AnyEvent officially supports a second, much
    simpler, API that is designed to reduce the calling, typing and memory
    overhead by using function call syntax and a fixed number of parameters.

    See the AE manpage for details.

ERROR AND EXCEPTION HANDLING
    In general, AnyEvent does not do any error handling - it relies on the
    caller to do that if required. The AnyEvent::Strict module (see also the
    "PERL_ANYEVENT_STRICT" environment variable, below) provides strict
    checking of all AnyEvent methods, however, which is highly useful during
    development.

    As for exception handling (i.e. runtime errors and exceptions thrown
    while executing a callback), this is not only highly event-loop
    specific, but also not in any way wrapped by this module, as this is the
    job of the main program.

    The pure perl event loop simply re-throws the exception (usually within
    "condvar->recv"), the Event and EV modules call "$Event/EV::DIED->()",
    Glib uses "install_exception_handler" and so on.

ENVIRONMENT VARIABLES
    AnyEvent supports a number of environment variables that tune the
    runtime behaviour. They are usually evaluated when AnyEvent is loaded,
    initialised, or a submodule that uses them is loaded. Many of them also
    cause AnyEvent to load additional modules - for example,
    "PERL_ANYEVENT_DEBUG_WRAP" causes the AnyEvent::Debug module to be
    loaded.

    All the environment variables documented here start with
    "PERL_ANYEVENT_", which is what AnyEvent considers its own namespace.
    Other modules are encouraged (but by no means required) to use
    "PERL_ANYEVENT_SUBMODULE" if they have registered the
    AnyEvent::Submodule namespace on CPAN, for any submodule. For example,
    AnyEvent::HTTP could be expected to use "PERL_ANYEVENT_HTTP_PROXY" (it
    should not access env variables starting with "AE_", see below).

    All variables can also be set via the "AE_" prefix, that is, instead of
    setting "PERL_ANYEVENT_VERBOSE" you can also set "AE_VERBOSE". In case
    there is a clash btween anyevent and another program that uses
    "AE_something" you can set the corresponding "PERL_ANYEVENT_something"
    variable to the empty string, as those variables take precedence.

    When AnyEvent is first loaded, it copies all "AE_xxx" env variables to
    their "PERL_ANYEVENT_xxx" counterpart unless that variable already
    exists. If taint mode is on, then AnyEvent will remove *all* environment
    variables starting with "PERL_ANYEVENT_" from %ENV (or replace them with
    "undef" or the empty string, if the corresaponding "AE_" variable is
    set).

    The exact algorithm is currently:

       1. if taint mode enabled, delete all PERL_ANYEVENT_xyz variables from %ENV
       2. copy over AE_xyz to PERL_ANYEVENT_xyz unless the latter alraedy exists
       3. if taint mode enabled, set all PERL_ANYEVENT_xyz variables to undef.

    This ensures that child processes will not see the "AE_" variables.

    The following environment variables are currently known to AnyEvent:

    "PERL_ANYEVENT_VERBOSE"
        By default, AnyEvent will log messages with loglevel 4 ("error") or
        higher (see AnyEvent::Log). You can set this environment variable to
        a numerical loglevel to make AnyEvent more (or less) talkative.

        If you want to do more than just set the global logging level you
        should have a look at "PERL_ANYEVENT_LOG", which allows much more
        complex specifications.

        When set to 0 ("off"), then no messages whatsoever will be logged
        with everything else at defaults.

        When set to 5 or higher ("warn"), AnyEvent warns about unexpected
        conditions, such as not being able to load the event model specified
        by "PERL_ANYEVENT_MODEL", or a guard callback throwing an exception
        - this is the minimum recommended level for use during development.

        When set to 7 or higher (info), AnyEvent reports which event model
        it chooses.

        When set to 8 or higher (debug), then AnyEvent will report extra
        information on which optional modules it loads and how it implements
        certain features.

    "PERL_ANYEVENT_LOG"
        Accepts rather complex logging specifications. For example, you
        could log all "debug" messages of some module to stderr, warnings
        and above to stderr, and errors and above to syslog, with:

           PERL_ANYEVENT_LOG=Some::Module=debug,+log:filter=warn,+%syslog:%syslog=error,syslog

        For the rather extensive details, see AnyEvent::Log.

        This variable is evaluated when AnyEvent (or AnyEvent::Log) is
        loaded, so will take effect even before AnyEvent has initialised



( run in 1.104 second using v1.01-cache-2.11-cpan-d7a12ab2c7f )