The Cache modules are designed to assist a developer in persisting data for a specified period of time. Often these modules are used in web applications to store data locally to save repeated and redundant expensive calls to remote machines or databases. People have also been known to use Cache::Cache for its straightforward interface in sharing data between runs of an application or invocations of a CGI-style script or simply as an easy to use abstraction of the file system or shared memory.
The Getopt::Long module implements an extended getopt function called GetOptions(). It parses the command line from ARGV, recognizing and removing specified options and their possible values.
This function adheres to the POSIX syntax for command line options, with GNU extensions. In general, this means that options have long names instead of single letters, and are introduced with a double dash "--". Support for bundling of command line options, as was the case with the more traditional single-letter approach, is provided but not enabled by default.
In situations where you have deep trees of classes, there is a common situation in which you test a module 4 or 5 subclasses down, which should follow the correct behaviour of not just the subclass, but of all the parent classes.
This should be done to ensure that the implementation of a subclass has not somehow ``broken'' the object's behaviour in a more general sense.
Test::Object is a testing package designed to allow you to easily test what you believe is a valid object against the expected behaviour of all of the classes in its inheritance tree in one single call.
The Readonly module is an effective way to create non-modifiable variables. However, it's relatively slow.
The reason it's slow is that is implements the read-only-ness of variables via tied objects. This mechanism is inherently slow. Perl simply has to do a lot of work under the hood to make tied variables work.
This module corrects the speed problem, at least with respect to scalar variables. When Readonly::XS is installed, Readonly uses it to access the internals of scalar variables. Instead of creating a scalar variable object and tying it, Readonly simply flips the SvREADONLY bit in the scalar's FLAGS structure.
File::Find is great, but constructing the wanted routine can sometimes be a pain. File::Finder provides a wanted-writer, using syntax that is directly mappable to the find(1) command's syntax.
A File::Finder object contains a hash of File::Find options, and a series of steps that mimic find's predicates. Initially, a File::Finder object has no steps. Each step method clones the previous object's options and steps, and then adds the new step, returning the new object. In this manner, an object can be grown, step by step, by chaining method calls. Furthermore, a partial sequence can be created and held, and used as the head of many different sequences.
This package is an internationalization library for Perl that aims to be compatible with the Uniforum message translations system as implemented for example in GNU gettext.
SSL support for Net::SMTP.
Devel::Caller provides meatier version of caller.
Net::Patricia does IP address lookups quickly in Perl.
Data::Tumbler - Dynamic generation of nested combinations of variants.
Set::Infinite is a set theory module for infinite sets.
This Raku module implements Common Lisp's format language.
Email::Sender replaces the old and sometimes problematic Email::Send library.
This module uses Pod::Simple to convert POD to Markdown.
Data::OptList provides a simple syntax for name/value option pairs.
This Raku module implements encoding and decoding to and from base64.
An HTTP::Message object contains some headers and a content body.
Email::Simple provides simple parsing of RFC 2822 message format and headers.
Sub::Identify allows you to retrieve the real name of code references.
Sub::Exporter provides a sophisticated alternative to Exporter.pm for custom-built routines.
MIME::Charset provides information about character sets used for MIME messages on Internet.
This perl module provides a wrapper around URI templates as described in RFC 6570.