Event-Lib is a Perl wrapper around libevent(3)
(http://www.monkey.org/~provos/libevent/).
It makes the handling of asynchronous events more comfortable.
Fennec does a ton, but it may be hard to adopt it all at once. It also
is a large project, and has not yet been fully split into component
projects. Fennec::Lite takes a minimalist approach to do for Fennec
what Mouse does for Moose.
Fennec::Lite is a single module file with no non-core dependencies. It
can easily be used by any project, either directly, or by copying it
into your project. The file itself is less than 300 lines of code at
the time of this writing, that includes whitespace.
Event::Notify implements a simple Observer pattern.
Event::RPC supports you in developing Event based networking client/server
applications with transparent object/method access from the client to the
server. Network communication is optionally encrypted using IO::Socket::SSL.
Several event loop managers are supported due to an extensible API. Currently
Event, Glib and AnyEvent are implemented. The latter lets you use nearly every
event loop implementation available for Perl. AnyEvent was invented after
Event::RPC was created and thus Event::RPC started using it's own abstraction
model.
Event - A Generic Perl Event Loop
This extension aims to provide a simple and optimized event loop for a
broad class of applications.
Returns true when the conditions (cycles or seconds elapsed) are met.
Exception::Class::TryCatch - Syntactic try/catch sugar for use with
Exception::Class.
This module allows you to declare hierarchies of exception classes for
use in your code. It also provides a simple exception class that it
uses as the default base class for all other exceptions.
You may choose to use another base class for your exceptions.
Regardless, the ability to declare all your exceptions at compile time
is a fairly useful trick and helps push people towards more structured
use of exceptions.
Expect::Simple is a wrapper around the Expect module which should suffice
for simple applications. It hides most of the Expect machinery; the Expect
object is available for tweaking if need be.
Generally, one starts by creating an Expect::Simple object using new. This
will start up the target program, and will wait until one of the specified
prompts is output by the target. At that point the caller should send()
commands to the program; the results are available via the before, after,
match_str, and match_idx methods. Since Expect simulates a terminal, there
will be extra \r characters at the end of each line in the result (on UNIX
at least). This is easily fixed:
($res = $obj->before) =~ tr/\r//d;
@lines = split( "\n", $res );
This is not done automatically.
Exceptions will be thrown on error (match with /Expect::Simple/). Errors
from Expect are available via the error_expect method. More human readable
errors are available via the error method.
The connection is automatically broken (by sending the specified
disconnect command to the target) when the Expect::Simple object is
destroyed.
Exporter::Declare is a meta-driven exporting tool. Exporter::Declare
tries to adopt all the good features of other exporting tools, while
throwing away horrible interfaces. Exporter::Declare also provides
hooks that allow you to add options and arguments for import. Finally,
Exporter::Declare's meta-driven system allows for top-notch
introspection.