Apache::Session is a persistence framework whose purpose is to provide session management to Web developers. It is designed to work with Apache and mod_perl, but it does not depend on them and will work with any Web server. This module provides a set of classes that give the developer maximum functionality. Session data can be stored in a database, flat files, or shared memory.
FormMagick is a set of Perl modules intended to ease the task of writing multi-page Web forms. It takes a description of the form (fields, validation to perform on each field, etc) in XML format and generates HTML on the fly. Other features include templates for changing the "look and feel" of your forms, and the ability to easily localise your text for other languages.
HTML::Mason is a full-featured web site development and delivery system. Mason allows web pages and sites to be constructed from shared, reusable building blocks called components. Components contain a mix of Perl and HTML, and can call each other and pass values back and forth like subroutines. Components increase modularity and eliminate repetitive work. HTML::Mason is most powerful when used in conjunction with mod_perl, but can be used in standalone applications as well.
XML::Parser is a Perl extension module providing an interface to James Clark's fast and robust XML parsing library, expat. Other Perl XML modules (many based on XML::Parser) may be found at the same CPAN download site where XML::Parser is located. The expat library is distributed as part of the module.
Hook::LexWrap allows you to install a pre- or post-wrapper (or both) around an existing subroutine. Unlike other modules that provide this capacity (e.g. Hook::PreAndPost and Hook::WrapSub), Hook::LexWrap implements wrappers in such a way that the standard 'caller' function works correctly within the wrapped subroutine.
Pod::Manual is a module that gathers the pod of several Perl modules into a comprehensive manual. Its primary objective is to generate a document that can be printed, but it also allow to output the document into other formats (e.g., docbook). podmanual is a utility that uses Pod::Manual.
CGI::ContactForm is a Perl module that generates a contact form for the Web and sends a message to a predestinated recipient. Unlike many form-to-mail programs, it's limited to this single purpose, but it allows you to set up a decently designed form with a minimum of effort. In other words, it's simple to use rather than flexible, even if there are quite a few customization possibilities.
Module::Build is a system for building, testing, and installing Perl modules. It is meant to be an alternative to ExtUtils::MakeMaker. Developers may alter the behavior of the module through subclassing in a much more straightforward way than with EU::MM. It also does not require a 'make' on your system: most of the Module::Build code is pure Perl and written in a very cross-platform way. In fact, you don't even need a shell, so even platforms like Mac OS (traditional) can use it fairly easily.
The CPAN shell (and module) automates or at least simplifies the building and installation of Perl modules and extensions. It includes some primitive searching capabilities and knows how to use Net::FTP, LWP, and certain external download clients to fetch distributions from the Internet. Then it automatically tests and installs them and their dependencies.
DBIx-Class is an SQL to OO mapper with an object API inspired by Class::DBI (with a compatibility layer as a springboard for porting) and a resultset API that allows abstract encapsulation of database operations. It aims to make representing queries in your code as Perl-ish as possible while still providing access to as many of the capabilities of the database as possible, including retrieving related records from multiple tables in a single query.
PPM-Make is a Perl module that automates some of the steps needed to make a ppm (Perl Package Manager) package from a CPAN distribution. It attempts to fill in the ABSTRACT and AUTHOR attributes of Makefile.PL if these are not supplied, and also generates HTML documentation. ppm is used in the ActivePerl distribution. ActivePerl is primarily used on Windows and by corporations on other OSes.
Dist::Zilla builds distributions of code to be uploaded to the CPAN. In this respect, it is like ExtUtils::MakeMaker, Module::Build, or Module::Install. Unlike those tools, however, it is not also a system for installing code that has been downloaded from the CPAN. Since it's only run by authors, and is meant to be run on a repository checkout rather than on published, released code, it can do much more than those tools, and is free to make much more ludicrous demands in terms of prerequisites.
Test::Class provides a simple way of creating classes and objects to test your Perl code in an xUnit style. Built using Test::Builder, it was designed to work with other Test::Builder-based modules. You can easily package your tests as classes/modules rather than *.t scripts. This simplifies reuse, documentation, and distribution, encourages refactoring, and allows tests to be extended by inheritance.
Fedora-Bugzilla is a Perl module that aims to expose a kinder, gentler interface to Fedora/RedHat's Bugzilla implementation, which has a large number of custom methods. In addition to the XML-RPC methods that Bugzilla makes available, there are also some things that can be accessed only via the Web/XML interfaces, such as the flags, attachments, and comments functionality. This package works to expose those as well.
XML::RDB is a Perl extension to convert XML files into RDB schemas and populate/unpopulate them. It works with XML schemas too. It analyzes relationships within either an XML file or an XML schema to create RDB tables to hold that document (or any XML document that conforms to the XML schema). It takes an XML file or URL as input for the XML::DOM::Parser, and extracts information to build and write DDL. An attempt is made to recognize relations within the XML structure then translate it to the DDL. That generated DDL is then loaded, parsing the DOM tree a second time to extract and load the data. At the bottom of the DDL are select statements to help get a view of those relations found, and XML data. xml_rdb also dumps the data back to XML format.
Finance-Bank-ID-BCA is a Perl module that provides a rudimentary interface to the Web-based online banking interface of the Indonesian Bank Central Asia (BCA) at https://ibank.klikbca.com. This module can only login to the retail/personal version of the site (KlikBCA perorangan) and not the corporate/business version (KlikBCA bisnis) as the latter requires VPN and token input on login. However, this module can parse the statement page from both versions.
Maatkit is a toolkit for users, developers, and administrators of open-source databases. It is high-quality, formally tested software that is well documented and has an active open-source developer community. It has some unusual goals: all tools are standalone, with minimal dependencies and no need for installation. Documentation is embedded in the tools themselves. There are many other nice attributes, too. Most of Maatkit’s functionality is designed for MySQL. It makes MySQL easier and safer to manage. It provides simple, predictable ways to do things you cannot otherwise do. You can use Maatkit to prove replication is working correctly, fix corrupted data, automate repetitive tasks, speed up your servers, and much more. In addition to MySQL, there is support for PostgreSQL, Memcached, and a growing variety of other databases and technologies.
Plack is a set of tools for using the PSGI stack. It contains middleware components, a reference server, and utilities for Web application frameworks. PSGI allows Web application framework developers to only write an adapter for PSGI. End users can choose from among all the backends that support the PSGI interface: CGI, FastCGI, mod_perl, the Nginx perl module, and standalone servers.
Job-Machine is a small, but versatile system for sending jobs to a message queue and, if necessary, communicating answers back to the sender. Job::Machine uses LISTEN / NOTIFY from PostgreSQL to send signals between clients and workers. This ensures very efficient message passing, giving any worker that is awake the chance to start working immediately.
Morpheus is a Perl module that implements a configuration engine that completely separates config consumers from config providers. Consumers can obtain configuration values by using this module or the morph script. Configuration values are bound to various nodes in the global configuration tree, similar to a virtual file system. Consumers can ask for any node or for any subtree. Providers are plugins which can populate the configuration tree from any sources, such as local configuration files, configuration database, and the environment. The overall program configuration is merged together from all data provided by plugins.
C-DynaLib is a Perl module that allows Perl programs to call C functions in dynamic libraries. It is useful for testing library functions, writing simple programs without the bother of XS, and generating C function pointers that call Perl code. If you have a C compiler that Perl supports, you will get better results by writing XSubs than by using this module.
EWS-Client is a module that acts as a client to the Microsoft Exchange Web Services API. From it you can access calendar and contact entries in a nicely abstracted fashion. Query results are generally available in an iterator and convenience methods exist to access the properties of each entry.
Math-Random-Xorshift is a Perl module that contains a straightforward implementation of the Xorshift PRNG algorithm proposed by G. Marsaglia in 2003. The algorithm is extremely fast and passes the Diehard test, though it is not reliable enough statistically. This module is useful for games and similar applications.
Perlbal is a Perl-based reverse proxy load balancer and Web server. It processes hundreds of millions of requests a day just for LiveJournal, Vox, and TypePad, and dozens of other "Web 2.0" applications. One of the defining things about Perlbal is that almost everything can be configured or reconfigured on the fly without needing to restart the software.
Robotics::IRobot provides a Perl interface for controlling and accessing sensor data from iRobot robots that support the OI Interface. It allows for both event-driven and polling-based reading of sensor data. It provides all functionality defined in the OI Interface for Roomba 400 series and Create robots. Also provided is some additional functionality such as primative dead reckoning and enhanced use of the Create's song functionality.
Litmus is an integrated testcase management and QA tool. It was designed to improve workflow, visibility, and turnaround time in the Mozilla QA process. Its goal is to allow users to enter software tests, run them, and view and manage the results. Along the way, users can expect to be able to do queries and reports and have access all the usual features they expect from a first-class Web application.
ORMesque is an object relational mapper for the Dancer framework that provides a database connection to the database of your choice and automatically creates objects and accessors for that database and its tables and columns. It uses the SQL::Abstract querying syntax, and can also be used as a standalone ORM. It is a great alternative when you don't have the time, need, or desire to learn DBIx::Class.
The Tcl extension provides a small but complete interface into libtcl and any other Tcl-based library for Perl programmers. It lets you create Tcl interpreters (as Perl 5 objects), bind in commands to them (either Perl subroutines or C functions dynamically loaded with the DynaLoader extension), and execute Tcl code in those interpreters.
Chart::Clicker aims to be a powerful, extensible charting Perl package that creates really pretty output. Charts can be saved in PNG, SVG, PDF, and PostScript format. Clicker leverages the power of Graphics::Primitive to create snazzy graphics without being tied to a specific backend.
CHI provides a unified caching API for Perl, designed to assist a developer in persisting data for a specified period of time. The CHI interface is implemented by driver classes that support fetching, storing, and clearing of data. Driver classes exist or will exist for the gamut of storage backends available to Perl, such as memory, plain files, memory mapped files, memcached, and DBI. CHI is intended as an evolution of DeWitt Clinton's Cache::Cache package, adhering to the basic Cache API but adding new features and addressing limitations in the Cache::Cache implementation.
Text::Xslate is a template engine, tuned for persistent applications, safe as an HTML generator, and with rich features. The concept of Xslate is sandboxing. The template logic should have no access outside the template beyond your permission. Templates are compiled into intermediate code and then executed by the virtual machine, which is highly optimized for rendering templates. Xslate supports template cascading, which allows you to extend templates with block modifiers.
AI::Prolog is a predicate logic engine implemented in pure Perl. In predicate logic, instead of telling the computer how to do something, you tell the computer what something is and let it figure out how to do it. Conceptually, this is similar to regular expressions. The AI::Prolog distribution contains a Prolog shell called aiprolog and two short adventure games, spider.pro and sleepy.pro.
KiokuDB is a frontend to various data stores. Its purpose is to provide persistence for "regular" objects with as little effort as possible, without sacrificing control over how persistence is actually done, especially for objects that are harder to serialize. KiokuDB is also non-invasive: it does not use ties, AUTOLOAD, proxy objects, sv_magic, or any other type of trickery. Many features important for proper Perl space semantics are supported, including shared data, circular structures, weak references, tied structures, etc.
HTML::FormFu is a framework for HTML forms. It aims to be as easy as possible to use for basic Web forms, but with the power and flexibility to do anything else you might want to do (as long as it involves forms). You can configure almost any part of formfu's behavior and output. By default, formfu renders "XHTML 1.0 Strict" compliant markup, with as little extra markup as possible, but with sufficient CSS class names to allow for a wide range of output styles to be generated by changing only the CSS.
Mail::DeliveryStatus::BounceParser analyzes RFC822 bounce messages and returns a structured description of the addresses that bounced and the reason they bounced; it also returns information about the original returned message, including the Message-ID. It works best with RFC1892 delivery reports, but will gamely attempt to understand any bounce message no matter what MTA generated it.
The satpass script provides satellite visibility predictions, given the position of the observer and the NORAD element sets for the desired satellites. It can acquire the NORAD element sets directly from any site supported by Astro::SpaceTrack. It can acquire the observer's latitude and longitude from http://geocoder.us/, look up star positions in the SIMBAD catalog, and more.