Pod::Parser is a base class for creating POD filters and translators. It handles most of the effort involved with parsing the POD sections from an input stream, leaving subclasses free to be concerned only with performing the actual translation of text.
NOTE: This module is considered legacy. New projects should prefer Pod::Simple instead.
This module offers some high level convenience functions for accessing web pages on SSL servers (for symmetry, the same API is offered for accessing http servers, too), an sslcat() function for writing your own clients, and finally access to the SSL api of the SSLeay/OpenSSL package so you can write servers or clients for more complicated applications.
Test::Mock is a module that works alongside the standard Test module to help you write tests when you want to verify what methods are called on an object, while still having calls to undefined methods die. You get started just as normal with the test file, but also add a use statement for Test::Mock.
This module attempts to answer, as accurately as it can, one of the nastiest technical questions there is: am I on the internet?
A host of networking and security issues make this problem very difficult. There are firewalls, proxies (both well behaved and badly behaved). We might not have DNS. We might not have a network card at all!
JSON::Parse is a module for parsing JSON. It offers parse_json which takes a string containing JSON and returns an equivalent Perl structure, valid_json which returns true or false depending on whether the JSON is correct or not, assert_valid_json which produces a descriptive fatal error if the JSON is invalid, and so on.
XML::Writer is a simple Perl module for writing XML documents: it takes care of constructing markup and escaping data correctly. By default, it also performs a significant amount of well-formedness checking on the output to make certain (for example) that start and end tags match, that there is exactly one document element, and that there are not duplicate attribute names.
Bit::Vector is an efficient C library which allows you to handle bit vectors, sets (of integers), "big integer arithmetic" and boolean matrices, all of arbitrary sizes. The package also includes an object-oriented Perl module for accessing the C library from Perl, and optionally features overloaded operators for maximum ease of use. The C library can nevertheless be used stand-alone, without Perl.
Test::Needs allows you to skip test scripts if modules are not available. The requested modules will be loaded, and optionally have their versions checked. If the module is missing, the test script will be skipped. Modules that are found but fail to compile will exit with an error rather than skip.
If used in a subtest, the remainder of the subtest will be skipped.
Hash::Merge merges two arbitrarily deep hashes into a single hash. That is, at any level, it will add non-conflicting key-value pairs from one hash to the other, and follows a set of specific rules when there are key value conflicts. The hash is followed recursively, so that deeply nested hashes that are at the same level will be merged when the parent hashes are merged.
File::pushd does a temporary chdir that is easily and automatically reverted, similar to pushd in some Unix command shells. It works by creating an object that caches the original working directory. When the object is destroyed, the destructor calls chdir to revert to the original working directory. By storing the object in a lexical variable with a limited scope, this happens automatically at the end of the scope.
This is released as a dependency of JSON::Marshal and JSON::Unmarshal in order to save duplication, it is intended to store a separate JSON name for an attribute where the name of the JSON attribute might be changed, either for aesthetic reasons or the name is not a valid Perl identifier. It will of course also be needed in classes thar are going to use JSON::Marshal or JSON::Unmarshal for serialization/deserialization.
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, "JOIN", "LEFT JOIN", "COUNT", "DISTINCT", "GROUP BY", "ORDER BY" and "HAVING" support.
This module adds the ability to quickly create new types of tie objects without creating a complete class. It does so in such a way as to try and make the programmers life easier when it comes to single-use ties that I find myself wanting to use from time-to-time.
The Tie::Simple package is actually a front-end to other classes which really do all the work once tied, but this package does the dwimming to automatically figure out what you're trying to do.
PerlTeX is a combination Perl script (perltex.pl) and LaTeX2e package (perltex.sty) that, together, give the user the ability to define LaTeX macros in terms of Perl code. Once defined, a Perl macro becomes indistinguishable from any other LaTeX macro. PerlTeX thereby combines LaTeX's typesetting power with Perl's programmability. PerlTeX will make use of persistent named pipes, and thereby run more efficiently. Also provided is a switch to generate a PerlTeX-free, document-specific, noperltex.sty that is useful when distributing a document to places where PerlTeX is not available.
Tainted data is data that comes from an unsafe source, such as the command line, or, in the case of web apps, any GET or POST transactions. Read the perlsec man page for details on why tainted data is bad, and how to untaint the data.
When you're writing unit tests for code that deals with tainted data, you'll want to have a way to provide tainted data for your routines to handle, and easy ways to check and report on the taintedness of your data, in standard Test::More style.
This module provides ways to parse XML documents. It is built on top of XML::Parser::Expat, which is a lower level interface to James Clark's expat library. Each call to one of the parsing methods creates a new instance of XML::Parser::Expat which is then used to parse the document. Expat options may be provided when the XML::Parser object is created. These options are then passed on to the Expat object on each parse call. They can also be given as extra arguments to the parse methods, in which case they override options given at XML::Parser creation time.
Net::Server is an extensible, generic Perl server engine. It attempts to be a generic server as in Net::Daemon and NetServer::Generic. It includes with it the ability to run as an inetd process (Net::Server::INET), a single connection server (Net::Server or Net::Server::Single), a forking server (Net::Server::Fork), a preforking server which maintains a constant number of preforked children (Net::Server::PreForkSimple), or as a managed preforking server which maintains the number of children based on server load (Net::Server::PreFork). In all but the inetd type, the server provides the ability to connect to one or to multiple server ports.
PerlIO::gzip provides a PerlIO layer that manipulates files in the format used by the gzip program.
Modern::Perl provides a simple way to enable multiple, by now, standard libraries in a Perl program.
Authen::SASL provides an SASL authentication framework.
Test::Simple contains basic utilities for writing tests.
App::Nopaste provides easy access to any pastebin.
XML::Writer is a module for creating XML in Raku.
This package provides a Perl grammar for the Tree-sitter library.