This OCaml-library consists of a set of modules which implement
automatically resizing (= reallocating) data structures that consume
a contiguous part of memory. This allows appending and removing of
elements to/from arrays (both boxed and unboxed), strings (-> buffers),
bit strings and weak arrays while still maintaining fast constant-time
access to elements.
There are also functors that allow the generation of similar modules
which use different reallocation strategies.
Algorithm::Dependency is a framework for creating simple read-only
dependency hierarchies, where you have a set of items that rely on other
items in the set, and require actions on them as well.
Despite the most visible of these being software installation systems like
the CPAN installer, or debian apt-get, they are useful in other
situations. This module intentionally uses implementation-neutral words,
to avoid confusion.
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).
The Autodist is a source distribution management system that allows
powerful mechanisms to define what is included in and excluded from a
distribution, and what license the distribution is released under. It is
also used to create the actual distribution source packages. Autodist
allows distribution management in file, directory and file content
level. Autodist is especially targeted for large software projects, and
projects where multiple distributions are created from one source tree.
from the README:
This module solves the problem of having to write a bazillion get/set
methods that are all the same. The argument to 'use' is a hash whose keys
are the names of types of generic methods generated by MethodMaker and
whose values tell method maker what methods to make. (More precisely, the
keys are the names of MethodMaker methods (methods that write methods) and
the values are the arguments to those methods.
This module allows you to read configuration data written in a
human-readable and easily-editable text format and access it as
a perl data structure. It also allows you to write configuration
data from perl back to this format.
The data format allows key/value pairs, comments, escaping of
unprintable or problematic characters, sensible whitespace
handling, support for Unicode data, nested sections, or blocks,
of configuration data.
This little package serves to access the symbol table of perl.
Devel::Symdump->rnew(@packages)
returns a symbol table object for all subtrees below @packages.
Nested Modules are analyzed recursively. If no package is given as
argument, it defaults to main. That means to get the whole symbol
table, just do a rnew without arguments.
Devel::Symdump->new(@packages)
does not go into recursion and only analyzes the packages that are
given as arguments.
The Devel::StackTrace module contains two classes, Devel::StackTrace and
Devel::StackTraceFrame. The goal of this object is to encapsulate the
information that can found through using the caller() function, as well as
providing a simple interface to this data.
The Devel::StackTrace object contains a set of Devel::StackTraceFrame
objects, one for each level of the stack. The frames contain all the data
available from caller() as of Perl 5.6.0 though this module still works
with 5.00503.
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.
Minion is a job queue for the Mojolicious real-time web framework with support
for multiple backends, such as DBM::Deep and PostgreSQL.
A job queue allows you to process time and/or computationally intensive tasks
in background processes, outside of the request/response lifecycle. Among those
tasks you'll commonly find image resizing, spam filtering, HTTP downloads,
building tarballs, warming caches and basically everything else you can imagine
that's not super fast.