When programming with callbacks in perl, you create anonymous functions with
sub { ... }. These functions are especially useful because when they are called
they will preserve their surrounding lexical environment. Sometimes people
call these anonymous functions that reference variables in their surrounding
lexical scope "closures". Whatever you call them, they are essential for
convenient and efficient asynchronous programming.
For many applications we really like straightforward callback style. The goal
of Callback::Frame is to simplify the management of dynamic environments while
leaving callback style alone.
This module is used by Schmorp's modules during configuration stage
to test the installed perl for compatibility with his modules.
It's not, at this stage, meant as a tool for other module authors,
although in principle nothing prevents them from subscribing to the
same ideas.
Capture::Tiny provides a simple, portable way to capture anything sent to
STDOUT or STDERR, regardless of whether it comes from Perl, from XS code or
from an external program. Optionally, output can be teed so that it is captured
while being passed through to the original handles.
This module provides a shared cache, using a memory mapped file. Very useful
for mod_perl applications. If routines are provided which interact with the
underlying data, access to the cache is completely transparent, and the module
handles all the details of refreshing cache contents, and updating underlying
data, if necessary.
A lightweight cache with timed expiration.
Stack traces are hard to read when the messages wrap, because it's hard to tell
when one message ends and the next message starts. Carp::Always::Color just
colors the first line of each stacktrace, based on whether it's a warning or an
error. If messages are being sent to a terminal, it colors them with terminal
escape codes, otherwise it colors them with HTML (ideas for more intelligent
behavior here are welcome).
This module is meant as a debugging aid. It can be used to make a
script complain loudly with stack backtraces when warn()ing or
die()ing.
Perl extension to create simple calendars.
Carp::Assert::More is a set of wrappers around the Carp::Assert functions
to make the habit of writing assertions even easier.
Everything in here is effectively syntactic sugar. There's no technical
reason to use
assert_isa( $foo, 'HTML::Lint' );
instead of
assert( defined $foo );
assert( ref($foo) eq 'HTML::Lint' );
other than readability and simplicity of the code.
My intent here is to make common assertions easy so that we as programmers
have no excuse to not use them.
Carp::Assert is intended for a purpose like the ANSI C library assert.h.