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.
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.
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.
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.
Config::Tiny is a Perl class to read and write .ini style configuration files with as little code as possible, reducing load time and memory overhead.
This module is primarily for reading human written files, and anything we write shouldn't need to have documentation/comments. If you need something with more power move up to Config::Simple, Config::General or one of the many other Config::* modules.
This module provides a convenient way to perform cleanup or other forms of resource management at the end of a scope. It is particularly useful when dealing with exceptions: the Scope::Guard constructor takes a reference to a subroutine that is guaranteed to be called even if the thread of execution is aborted prematurely. This effectively allows lexically-scoped "promises" to be made that are automatically honoured by perl's garbage collector.
Back in the early days of the web, many people learned Perl because of a wonderful Perl library called CGI. It was simple enough to get started without knowing much about the language and powerful enough to keep you going, learning by doing was much fun. While most of the techniques used are outdated now, the idea behind it is not. Mojolicious is a new endeavor to implement this idea using modern technologies.
One recurring problem in modules that use Scalar::Util's weaken function is that it is not present in the pure-perl variant. If Scalar::Util is not available at all, it will issue a normal dependency on the module. However, if Scalar::Util is relatively new ( it is >= 1.19 ) and the module does not have weaken, the install will bail out altogether with a long error encouraging the user to seek support.
This is a simple role that provides methods to instantiate a class from a JSON string that (hopefully) represents it, and to serialize an object of the class to a JSON string. The JSON created from an instance should round trip to a new instance with the same values for the public attributes. Private attributes (that is ones without accessors,) will be ignored for both serialization and deserialization. The exact behaviour depends on that of JSON::Marshal and JSON::Unmarshal respectively.