SQL::Tokenizer is a tokenizer for SQL queries. It does not claim to be a parser or query verifier. It just creates sane tokens from a valid SQL query.
Email::Address implements a regex-based RFC 2822 parser that locates email addresses in strings and returns a list of Email::Address objects found. Alternatively you may construct objects manually.
This project includes an assortment of command-line Perl scripts that are useful for font development, and run in terminal apps, such as Terminal on macOS, and Command Prompt on Windows.
Text::Markdown
is a Perl module that provides an alternate implementation of the Markdown implementation by John Gruber (see the markdown package). It is a slower implementation, but better maintained.
This library provides a single exported subroutine to create a JSON representation of an object. It should round trip back into an object of the same class using JSON::Unmarshal
.
Exporter::Lite is an alternative to Exporter, intended to provide a lightweight subset of the most commonly-used functionality. It supports import(), @EXPORT and @EXPORT_OK and not a whole lot else.
Search::Xapian wraps most methods of most Xapian classes. The missing classes and methods should be added in the future. It also provides a simplified, more 'perlish' interface to some common operations.
Config::Simple
is a class representing configuration file object. It supports several configuration file syntax and tries to identify the file syntax automatically. The library supports parsing, updating and creating configuration files.
App::cpanminus is a script to get, unpack, build and install modules from CPAN and does nothing else. It's dependency free (can bootstrap itself), requires zero configuration, and stands alone. When running, it requires only 10MB of RAM.
This module brings the speed advantages of Set::IntSpan
(written by Steven McDougall) to arrays. Uses include manipulating grades, routing tables, or any other situation where you have mutually exclusive ranges of integers that map to given values.
This module provides a flexible calling interface to some frequently-performed string conversion functions, including applying and expanding standard C/Unix-style backslash escapes like and , wrapping and removing double-quotes, and truncating to fit within a desired length.
This provides an abstraction over the SPDX License List as provided in JSON format. Its primary raison d'ĂȘtre is to help the licence checking of Test::META
and to allow for the warning about deprecated licences therein.
Socket::MsgHdr provides advanced socket messaging operations via sendmsg and recvmsg.
It also allows manipulating ancillary data or so-called control information (cmsghdr). This ancillary data may be used for file descriptor passing, IPv6 operations, and a host of implementation-specific extensions.
This is a unified interface to retrieve terminal size. It loads one module of a list of known alternatives, each implementing some way to get the desired terminal information. This loaded module will actually do the job on behalf of Term::Size::Any
.
This is a library for generating letters, building HTML pages, or filling in templates generally. A template is a piece of text that has little Perl programs embedded in it here and there. When you fill in a template, you evaluate the little programs and replace them with their values.
This package provides the Proc::PID::File
Perl module. It is useful for writers of daemons and other processes that need to tell whether they are already running, in order to prevent multiple process instances. The module accomplishes this via *nix-style pidfiles, which are files that store a process identifier.
This package provides an extension to the Net::DBus
module allowing integration with the GLib mainloop. To integrate with the main loop, simply get a connection to the bus via the methods in Net::DBus::GLib
rather than the usual Net::DBus
module. Every other API remains the same.
Exporter::Tiny supports many of Sub::Exporter's external-facing features including renaming imported functions with the `-as`, `-prefix` and `-suffix` options; explicit destinations with the `into` option; and alternative installers with the `installer` option. But it's written in only about 40% as many lines of code and with zero non-core dependencies.
IO::Socket::SSL makes using SSL/TLS much easier by wrapping the necessary functionality into the familiar IO::Socket interface and providing secure defaults whenever possible. This way existing applications can be made SSL-aware without much effort, at least if you do blocking I/O and don't use select or poll.
This module exports a single hash (%RE
) that stores or generates commonly needed regular expressions. Patterns currently provided include: balanced parentheses and brackets, delimited text (with escapes), integers and floating-point numbers in any base (up to 36), comments in 44 languages, offensive language, lists of any pattern, IPv4 addresses, URIs, and Zip codes.
This module was created to enable test suites to test code at specific points in time. Specifically it overrides localtime, gmtime and time at compile time and then relies on the user supplying a mock time via set_relative_time, set_absolute_time or set_fixed_time to alter future calls to gmtime,time or localtime.
File::Mimeinfo
can be used to determine the MIME type of a file. It tries to implement the Freedesktop specification for a shared MIME database.
This package also contains two related utilities:
mimetype
determines a file's MIME type;mimeopen
opens files in an appropriate program according to their MIME type.
This module is intended to be used as a drop-in replacement for Test::NoWarnings. It also adds an extra test, but runs this test before done_testing calculates the test count, rather than after. It does this by hooking into done_testing as well as via an END block. You can declare a plan, or not, and things will still Just Work.
Test::Manifest
overrides the default test file order. Instead of running all of the t/*.t files in ASCII-betical order, it looks in the t/test_manifest file to find out which tests you want to run and the order in which you want to run them. It constructs the right value for the build system to do the right thing.