TheSchwartz is a reliable job queue system. This module can pull
jobs from the queue to send email out via SMTP.
One of the drawbacks for using Perl's native array is that it is a
memory-hog. Normally it takes 20 bytes a scalar (16 bytes for scalar +
overhead). This can be a problem when you need to handle millions of
numbers in-memory. This module saves memory in exchange for speed.
Tie::DB_File::SplitHash
Designed for support of file size limited OSes. Transparently splits
a DB_File database into as many distinct files as desired. Distributes
hash entries between the files using a randomization algorithm.
Has the effect of allowing DB_File hashes to grow to the full size
of the partition. Requires 'Digest::SHA1' and 'DB_File' to be installed.
Tie::File::AsHash represents a regular text file as a Perl hash. Each key/value
pair in the hash corresponds to a record in the file.
Changes to the hash are reflected in the file immediately.
Someone asked on Perlmonks if a hash could do fuzzy matches on keys - this
is the result.
If there's no exact match on the key that you pass to the hash, then the
key is treated as a regex and the first matching key is returned. You can
force it to leap straight into the regex checking by passing a qr'ed regex
into the hash like this:
my $val = $h{qr/key/};
exists and delete also do regex matching. In the case of delete all values
matching your regex key will be deleted from the hash.
The Tie::RefHash module can be used to access hashes by reference. This is
useful when you index by object, for example.
The problem with Tie::RefHash, and cross indexing, is that sometimes the
index should not contain strong references to the objecs. Tie::RefHash's
internal structures contain strong references to the key, and provide no
convenient means to make those references weak.
This subclass of Tie::RefHash has weak keys, instead of strong ones. The
values are left unaltered, and you'll have to make sure there are no strong
references there yourself.
Time::Duration::Parse is a module to parse human readable duration
strings like 2 minutes and 3 seconds to seconds.
It does the opposite of duration_exact function in Time::Duration and
is roundtrip safe. So, the following is always true.
use Time::Duration::Parse;
use Time::Duration;
my $seconds = int rand 100000;
is( parse_duration(duration_exact($seconds)), $seconds );
A subclass of Date::Range that uses Time::Piece objects, rather
than Date::Simple, to manipulate ranges of dates.
A simple class to provide a dictionary style API to a binary tree of data.
This can provide a useful alternative to a long-lived hash in long running
daemons and processes.
Encapsulates/makes/manipulates objects that represent nodes
in a tree structure. The tree structure is not an object itself, but
is emergent from the linkages you create between nodes. This class
provides the methods for making linkages that can be used to build up
a tree, while preventing you from ever making any kinds of linkages
which are not allowed in a tree (such as having a node be its own
mother or ancestor, or having a node have two mothers).