This Perl module provides a central location for modules to report monitoring metrics, such as counters of the number of times interesting events have happened, and programs to collect up and send those metrics to monitoring services.
Ref::Util::XS is the XS implementation of Ref::Util, which provides several functions to help identify references in a more convenient way than the usual approach of examining the return value of ref.
This module provides a few useful functions for manipulating module names. Its main aim is to centralise some of the functions commonly used by modules that manipulate other modules in some way, like converting module names to relative paths.
Dates are complex enough without times and timezones. This module may be used to create simple date objects. It handles validation, interval arithmetic, and day-of-week calculation. It does not deal with hours, minutes, seconds, and time zones.
Instances of the HTTP::Daemon class are HTTP/1.1 servers that listen on a socket for incoming requests. The HTTP::Daemon is a subclass of IO::Socket::INET, so you can perform socket operations directly on it too.
This is an HTTP request parser. It takes chunks of text as received and returns a hint as to what is required, or returns the HTTP::Request when a complete request has been read. HTTP/1.1 chunking is supported.
The intent of the Test::Script module is to provide a series of basic tests for 80% of the testing you will need to do for scripts in the script (or bin as is also commonly used) paths of your Perl distribution.
Given a list of scalars or reference variables, Data::Dumper writes out their contents in Perl syntax. The references can also be objects. The content of each variable is output in a single Perl statement. It handles self-referential structures correctly.
The purpose of the PPIx-Regexp package is to parse regular expressions in a manner similar to the way the PPI package parses Perl. This class forms the root of the parse tree, playing a role similar to PPI::Document.
This module provides code coverage metrics for Perl. Code coverage metrics describe how thoroughly tests exercise code. By using Devel::Cover you can discover areas of code not exercised by your tests and determine which tests to create to increase coverage.
Sometimes you need to test what happens when a given module is not installed. This module provides a way of temporarily hiding installed modules from perl's require mechanism. The Module::Mask object adds itself to @INC and blocks require calls to restricted modules.
File::Remove::remove removes files and directories. It acts like /bin/rm, for the most part. Although unlink can be given a list of files, it will not remove directories; this module remedies that. It also accepts wildcards, * and ?, as arguments for file names.
This provides a trait and a role for the identification of `opt in' serializable attributes in, e.g., JSON::Marshal. It's probably not necessary to use this directly as it will be required by, e.g., JSON::Name, but it's just more convenient to package it separately.
This package provides the Proc:Daemon module. It can be sed by a Perl program to initialize itself as a daemon or to execute (exec) a system command as daemon. You can also check the status of the daemon (alive or dead) and you can kill the daemon.
DBIx::Simple provides a simplified interface to DBI, Perl's powerful database module. This module is aimed at rapid development and easy maintenance. Query preparation and execution are combined in a single method, the result object (which is a wrapper around the statement handle) provides easy row-by-row and slurping methods.
Struct::Dumb creates record-like structure types, similar to the struct keyword in C, C++ or C#, or Record in Pascal. An invocation of this module will create a construction function which returns new object references with the given field values. These references all respond to lvalue methods that access or modify the values stored.
This package enables you to do generic message logging throughout programs and projects. Every message will be logged with stacktraces, timestamps and so on. You can use built-in handlers immediately, or after the fact when you inspect the error stack. It is highly configurable and lets you even provide your own handlers for dealing with messages.
The conventional models for parsing XML are either DOM (a data structure representing the entire document tree is created) or SAX (callbacks are issued for each element in the XML).
XML grammar is recursive - so it's nice to be able to write recursive parsers for it. XML::Descent allows such parsers to be created.
Text::BibTeX is a Perl library for reading, parsing, and processing BibTeX files. Text::BibTeX gives you access to the data at many different levels: you may work with BibTeX entries as simple field to string mappings, or get at the original form of the data as a list of simple values (strings, macros, or numbers) pasted together.
The form() subroutine may be exported from the module. It takes a series of format (or "picture") strings followed by replacement values, interpolates those values into each picture string, and returns the result. The effect is similar to the inbuilt perl format mechanism, although the field specification syntax is simpler and some of the formatting behaviour is more sophisticated.
Text::CSV_XS provides facilities for the composition and decomposition of comma-separated values. An instance of the Text::CSV_XS class will combine fields into a CSV string and parse a CSV string into fields. The module accepts either strings or files as input and support the use of user-specified characters for delimiters, separators, and escapes.
This Perl module allows you to split data into records by not only specifying what you wish to split the data on, but also by specifying an "unless" regular expression. If the text in question matches the "unless" regex, it will not be split there. This allows us to do things like split on newlines unless newlines are embedded in quotes.
MIME::Base64 module provides functions to encode and decode strings into and from the base64 encoding specified in RFC 2045 - MIME (Multipurpose Internet Mail Extensions). The base64 encoding is designed to represent arbitrary sequences of octets in a form that need not be humanly readable. A 65-character subset ([A-Za-z0-9+/=]) of US-ASCII is used, enabling 6 bits to be represented per printable character.
Writing exporters is a pain. Some use Exporter, some use Sub::Exporter, some use Moose::Exporter, some use Exporter::Declare ... and some things are pragmas. Exporting on someone else's behalf is harder. The exporters don't provide a consistent API for this, and pragmas need to have their import method called directly, since they effect the current unit of compilation. Import::Into provides global methods to make this painless.