Module::Install is a package for writing installers for CPAN (or CPAN-like) distributions that are clean, simple, minimalist, act in a strictly correct manner with ExtUtils::MakeMaker, and will run on any Perl installation version 5.005 or newer.
Devel::CheckLib
is a Perl module that checks whether a particular C library and its headers are available. You can also check for the presence of particular functions in a library, or even that those functions return particular results.
The LWP::MediaTypes module provides functions for handling media (also known as MIME) types and encodings. The mapping from file extensions to media types is defined by the media.types file. If the ~/.media.types file exists it is used instead.
The WWW::RobotRules module parses /robots.txt files as specified in "A Standard for Robot Exclusion", at <http://www.robotstxt.org/wc/norobots.html>. Webmasters can use the /robots.txt file to forbid conforming robots from accessing parts of their web site.
Authen::DecHpwd
implements the SYS$HASH_PASSWORD password hashing function from VMS (also known as LGI$HPWD) and some associated VMS username and password handling functions. The password hashing function is implemented in XS with a pure Perl backup version for systems that cannot handle XS.
Perl::MinimumVersion takes Perl source code and calculates the minimum version of perl required to be able to run it. Because it is based on the PPI (Perl Parsing Interface), it can do this without loading the code. The distribution comes with a script called perlver.
Conf::Libconfig is a Perl interface to the libconfig configuration file library. It support scalar, array, and hash data structures just like its C/C++ counterpart. It reduces the effort required to implement a configuration file parser in your Perl programme and allows sharing configuration files between languages.
This is a module for computing the difference between two files, two strings, or any other two lists of things. It uses an intelligent algorithm similar to (or identical to) the one used by the Unix "diff" program. It is guaranteed to find the *smallest possible* set of differences.
It's boring to deal with opening files for IO, converting strings to handle-like objects, and all that. With Mixin::Linewise::Readers
and Mixin::Linewise::Writers
, you can just write a method to handle handles, and methods for handling strings and file names are added for you.
A shared memory cache through an mmap'ed file. It's core is written in C for performance. It uses fcntl locking to ensure multiple processes can safely access the cache at the same time. It uses a basic LRU algorithm to keep the most used entries in the cache.
XML::TokeParser
provides a procedural ("pull mode") interface to XML::Parser
in much the same way that Gisle Aas' HTML::TokeParser
provides a procedural interface to HTML::Parser
. XML::TokeParser
splits its XML input up into "tokens", each corresponding to an XML::Parser
event.
Test::More::UTF8
is a simple extension for the widely used Test::More
module. By default, it will do a binmode
on all of :utf8
Test::Builder
's output handles thus enabling the easy use flagged strings without warnings like "Wide character in print …"
The Catalyst-Devel distribution includes a variety of modules useful for the development of Catalyst applications, but not required to run them. Catalyst-Devel includes the Catalyst::Helper system, which autogenerates scripts and tests; Module::Install::Catalyst, a Module::Install extension for Catalyst; and requirements for a variety of development-related modules.
File locking in Perl is usually done using the flock
function. Unfortunately, this only allows locks on whole files and is often implemented in terms of the flock(2)
system function which has some shortcomings (especially concerning locks on remotely mounted file systems) and slightly different behaviour than fcntl(2)
.
This class provides several methods for host name resolution. It is designed to be used with event loops. Names are resolved by your system's native getaddrinfo(3)
implementation, called in a separate thread to avoid blocking the entire application. Threading overhead is limited by using system threads instead of Perl threads.
Text::Unidecode provides a function, unidecode(...) that takes Unicode data and tries to represent it in US-ASCII characters (i.e., the universally displayable characters between 0x00 and 0x7F). The representation is almost always an attempt at transliteration-- i.e., conveying, in Roman letters, the pronunciation expressed by the text in some other writing system.
The HTTP::Negotiate module provides a complete implementation of the HTTP content negotiation algorithm specified in draft-ietf-http-v11-spec-00.ps chapter 12. Content negotiation allows for the selection of a preferred content representation based upon attributes of the negotiable variants and the value of the various Accept* header fields in the request.
Magic is Perl's way of enhancing variables. This mechanism lets the user add extra data to any variable and hook syntactical operations (such as access, assignment or destruction) that can be applied to it. With this module, you can add your own magic to any variable without having to write a single line of XS.
This Perl library provides a function which tells whether a specific time falls within a specified time period. Its syntax for specifying time periods allows you to test for conditions like "Monday to Friday, 9am till 5pm" and "on the second Tuesday of the month" and "between 4pm and 4:15pm" and "in the first half of each minute" and "in January of 1998".
Term::ANSIColor provides constants and simple functions for setting ANSI text attributes, most notably colors. It can be used to set the current text attributes or to apply a set of attributes to a string and reset the current text attributes at the end of that string. Eight-color, sixteen-color, 256-color, and true color (24-bit color) escape sequences are all supported.
PPIx::Utilities
is a collection of functions for dealing with PPI
objects, many of which originated in Perl::Critic
. They are organized into modules by the kind of PPI
class they relate to, by replacing the "PPI
" at the front of the module name with "PPIx::Utilities
", e.g. functionality related to PPI::Nodes
is in PPIx::Utilities::Node
.
Internationalized Domain Names (IDNs) use characters drawn from a large repertoire (Unicode), but IDNA allows the non-ASCII characters to be represented using only the ASCII characters already allowed in so-called host names today (letter-digit-hyphen, /[A-Z0-9-]/i).
Use this module if you just want to convert domain names (or email addresses), using whatever IDNA standard is the best choice at the moment.
This module implements the Rijndael cipher which has been selected as the Advanced Encryption Standard. The keysize for Rijndael is 32 bytes. The blocksize is 16 bytes (128 bits). The supported encryption modes are:
MODE_CBC
---Cipher Block ChainingMODE_CFB
---Cipher feedbackMODE_CTR
---Counter modeMODE_ECB
---Electronic cookbook modeMODE_OFB
---Output feedback
This module opens a config file and parses its contents for you. The format of config files supported by Config::General is inspired by the well known Apache config format and is 100% compatible with Apache configs, but you can also just use simple name/value pairs in your config files. In addition to the capabilities of an Apache config file it supports some enhancements such as here-documents, C-style comments, and multiline options.