This module connects to the i3 window manager using the UNIX socket based IPC interface it provides (if enabled in the configuration file). You can then subscribe to events or send messages and receive their replies.
Net::Bonjour is a set of modules that allow one to discover local services via multicast DNS (mDNS) or enterprise services via traditional DNS. This method of service discovery has been branded as Bonjour by Apple Computer.
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.
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.
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
.
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 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.
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.
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.
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.
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::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.
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.
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.