AnyEvent::Util - various utility functions.
use AnyEvent::Util;
This module implements various utility functions, mostly replacing well-known functions by event-ised counterparts.
All functions documented without AnyEvent::Util:: prefix are exported by default.
AnyEvent::Util::
Calling pipe in Perl is portable - except it doesn't really work on sucky windows platforms (at least not with most perls - cygwin's perl notably works fine).
pipe
On that platform, you actually get two file handles you cannot use select on.
This function gives you a pipe that actually works even on the broken Windows platform (by creating a pair of TCP sockets, so do not expect any speed from that).
Returns the empty list on any errors.
Executes the given code reference asynchronously, by forking. Everything the $coderef returns will transferred to the calling process (by serialising and deserialising via Storable).
$coderef
If there are any errors, then the $cb will be called without any arguments. In that case, either $@ contains the exception, or $! contains an error number. In all other cases, $@ will be undefined.
$cb
$@
$!
undef
The $coderef must not ever call an event-polling function or use event-based programming.
Note that forking can be expensive in large programs (RSS 200MB+). On windows, it is abysmally slow, do not expect more than 5..20 forks/s on that sucky platform (note this uses perl's pseudo-threads, so avoid those like the plague).
The maximum number of child processes that fork_call will fork in parallel. Any additional requests will be queued until a slot becomes free again.
fork_call
The environment variable PERL_ANYEVENT_MAX_FORKS is used to initialise this value.
PERL_ANYEVENT_MAX_FORKS
Sets the blocking state of the given filehandle (true == nonblocking, false == blocking). Uses fcntl on anything sensible and ioctl FIONBIO on broken (i.e. windows) platforms.
This function creates a special object that, when called, will execute the code block.
This is often handy in continuation-passing style code to clean up some resource regardless of where you break out of a process.
You can call one method on the returned object:
This simply causes the code block not to be invoked: it "cancels" the guard.
Marc Lehmann <schmorp@schmorp.de> http://home.schmorp.de/
To install AnyEvent, copy and paste the appropriate command in to your terminal.
cpanm
cpanm AnyEvent
CPAN shell
perl -MCPAN -e shell install AnyEvent
For more information on module installation, please visit the detailed CPAN module installation guide.