The Specio distribution provides classes for representing type constraints and coercion, along with syntax sugar for declaring them. Note that this is not a proper type system for Perl. Nothing in this distribution will magically make the Perl interpreter start checking a value's type on assignment to a variable. In fact, there's no built-in way to apply a type to a variable at all. Instead, you can explicitly check a value against a type, and optionally coerce values to that type.
This provides a representation of the Raku META files specification -- the META file data can be read, created, parsed and written in a manner that is conformant with the specification.
Where they are known about, it also makes allowance for customary usage in existing software (such as installers and so forth).
The intent of this is to allow the generation and testing of META files for module authors, so it can provide meta-information about whether the attributes are mandatory as per the spec and, where known, the places that customary attributes are used.
This module exposes interpreter threads to the Perl level.
Net::DNS is the Perl Interface to the Domain Name System.
This module converts Perl data structures to JSON and vice versa.
This package transparently speeds up functions by caching return values, trading space for time.
This module provides basic Boolean support, by defining two special objects: true and false.
The DB::File module provides Perl bindings to the Berkeley DB version 1.x.
Locale::gettext provides an object oriented interface to the internationalization functions provided by the C library.
Socket6 binds the IPv6 related part of the C socket header definitions and structure manipulators for Perl.
XML::SAX consists of several framework classes for using and building Perl SAX2 XML parsers, filters, and drivers.
Sys::CPU is a module for counting the number of CPUs on a system, and determining their type and clock speed.
These bindings wrap libxcb
(a C library to speak with X11, in many cases better than Xlib
), and provides an object oriented interface to its methods (using Mouse
).
IO::HTML provides an easy way to open a file containing HTML while automatically determining its encoding. It uses the HTML5 encoding sniffing algorithm specified in section 8.2.2.1 of the draft standard.
IPC::Cmd
allows for the searching and execution of any binary on your system. It adheres to verbosity settings and is able to run interactively. It also has an option to capture output/error buffers.
The alias module loads the class you specify and exports into your namespace a subroutine that returns the class name. You can explicitly alias the class to another name or, if you prefer, you can do so implicitly.
IPC::Run allows you run and interact with child processes using files, pipes, and pseudo-ttys. Both system()-style and scripted usages are supported and may be mixed. Likewise, functional and OO API styles are both supported and may be mixed.
This module provides a basic framework for creating and maintaining RDF Site Summary (RSS) files. This distribution also contains many examples that allow you to generate HTML from an RSS, convert between 0.9, 0.91, and 1.0 version, and more.
This module extends the XML::Parser module by Clark Cooper. The XML::Parser module is built on top of XML::Parser::Expat, which is a lower level interface to James Clark's expat library. XML::DOM::Parser is derived from XML::Parser. It parses XML strings or files and builds a data structure that conforms to the API of the Document Object Model.
This module is an implementation of the BGP-4 inter-domain routing protocol. It encapsulates all of the functionality needed to establish and maintain a BGP peering session and exchange routing update information with the peer. It aims to provide a simple API to the BGP protocol for the purposes of automation, logging, monitoring, testing, and similar tasks using the power and flexibility of perl. The module does not implement the functionality of a RIB (Routing Information Base) nor does it modify the kernel routing table of the host system. However, such operations could be implemented using the API provided by the module.
Log::Any
provides a standard log production API for modules. Log::Any::Adapter
allows applications to choose the mechanism for log consumption, whether screen, file or another logging mechanism like Log::Dispatch
or Log::Log4perl
.
A CPAN module uses Log::Any
to get a log producer object. An application, in turn, may choose one or more logging mechanisms via Log::Any::Adapter
, or none at all.
Log::Any
has a very tiny footprint and no dependencies beyond Perl itself, which makes it appropriate for even small CPAN modules to use. It defaults to null
logging activity, so a module can safely log without worrying about whether the application has chosen (or will ever choose) a logging mechanism.