(GPL-1.0-or-later or Artistic-1.0-perl) and (GPL-2.0-or-later or Artistic-1.0-perl) and MIT and UCD and Public Domain and BSD
(Unicode-DFS-2016 AND (Artistic-1.0-Perl OR GPL-1.0-or-later))
(GPL+ or Artistic) and CC0 and Public Domain
((Artistic-1.0-Perl OR GPL-1.0-or-later) AND Artistic-2.0)
(GPL-1.0-or-later or Artistic-1.0-perl) and MIT and UCD
LGPLv2+ and LGPLv2+ with exceptions and GPLv2+ and GPLv2+ with exceptions and BSD and Inner-Net-2.0 and ISC and Public Domain and GFDL-1.3-only
Generic input parsing/checking mechanism
Params::Check Allows for generic input checking and validating using a powerfull templating system, providing default values and so on.
acquired package info from repodata DB: repodata/f1f85c23079e7764ad00378a9fc5d660b89a03657290e75426caf7be5b7da462-primary.sqlite.bz2
Read and write a subset of YAML for CPAN Meta files
This module implements a subset of the YAML specification for use in reading and writing CPAN metadata files like META.yml and MYMETA.yml. It should not be used for any other general YAML parsing or generation task. NOTE: META.yml (and MYMETA.yml) files should be UTF-8 encoded. Users are responsible for proper encoding and decoding. In particular, the read and write methods do not support UTF-8 and should not be used.
A library of database functions that work similar to the standard UNIX dbm
GNU dbm (or GDBM, for short) is a library of database functions that use extensible hashing and work similar to the standard UNIX dbm. These routines are provided to a programmer needing to create and manipulate a hashed database.
An interface to the UNIX syslog(3) program
Sys-Syslog is an interface to the UNIX syslog(3) program. Call syslog() with a string priority and a list of printf() args just like syslog(3).
enc2xs builds a Perl extension for use by Encode from either Unicode Character Mapping files (.ucm) or Tcl Encoding Files (.enc). You can use enc2xs to add your own encoding to perl. No knowledge of XS is necessary. With the encoding pragma, you can write your Perl script in any encoding you like (so long as the Encode module supports it) and still enjoy Unicode support. However, this encoding module is deprecated under perl 5.18. It uses a mechanism provided by perl that is deprecated under 5.18 and higher, and may be removed in a future version. The easiest and the best alternative is to write your script in UTF-8.
Extract delimited text sequences from strings
These Perl subroutines may be used to extract a delimited substring, possibly after skipping a specified prefix string.
The Carp routines are useful in your own modules because they act like die() or warn(), but with a message which is more likely to be useful to a user of your module. In the case of cluck, confess, and longmess that context is a summary of every call in the call-stack. For a shorter message you can use carp or croak which report the error as being from where your module was called. There is no guarantee that that is where the error was, but it is a good educated guess.
Three modules provided by this package: * bigint - Transparent BigInteger support for Perl * bignum - Transparent BigNumber support for Perl * bigrat - Transparent BigNumber/BigRational support for Perl * bigfloat - Transparent big floating point number support for Perl
Source filters alter the program text of a module before Perl sees it, much as a C preprocessor alters the source text of a C program before the compiler sees it.
The package is an algorithm defined in Unicode Technical Report #10, which defines a customizable method to compare two strings. These comparisons can then be used to collate or sort text in any writing system and language that can be represented with Unicode.
specific rpm configuration files for openEuler.
A small, simple, correct HTTP/1.1 client
This is a very simple HTTP/1.1 client, designed for doing simple requests without the overhead of a large framework like LWP::UserAgent. It is more correct and more complete than HTTP::Lite. It supports proxies and redirection. It also correctly resumes after EINTR. If IO::Socket::IP 0.25 or later is installed, HTTP::Tiny will use it instead of IO::Socket::INET for transparent support for both IPv4 and IPv6. Cookie support requires HTTP::CookieJar or an equivalent class.
Runtime require of both modules and files
Module::Load eliminates the need to know whether you are trying to require either a file or a module. If you consult perldoc -f require you will see that require will behave differently when given a bareword or a string. In the case of a string, require assumes you are wanting to load a file. But in the case of a bareword, it assumes you mean a module. This gives nasty overhead when you are trying to dynamically require modules at runtime, since you will need to change the module notation (Acme::Comment) to a file notation fitting the particular platform you are on. Module::Load eliminates the need for this overhead and will just DWYM.
The distribution metadata for a CPAN dist
Software distributions released to the CPAN include a META.json or, for older distributions, META.yml, which describes the distribution, its contents, and the requirements for building and installing the distribution. The data structure stored in the META.json file is described in CPAN::Meta::Spec. CPAN::Meta provides a simple class to represent this distribution metadata (or distmeta), along with some helpful methods for interrogating that data.
Arbitrary size integer/float math package
Math::BigInt provides support for arbitrary precision integers. Overloading is also provided for Perl operators.
Networking constants and support functions
This module provides a variety of constants, structure manipulators and other functions related to socket-based networking. The values and functions provided are useful when used in conjunction with Perl core functions such as socket(), setsockopt() and bind(). It also provides several other support functions, mostly for dealing with conversions of network addresses between human-readable and native binary forms, and for hostname resolver operations.
Format POD source into various output formats
podlators contains Pod::Man and Pod::Text modules which convert POD input to *roff source output, suitable for man pages, or plain text. It also includes several subclasses of Pod::Text for formatted output to terminals with various capabilities. It is the source package for the Pod::Man and Pod::Text modules included with Perl.
File::Fetch is a generic file fetching mechanism. It allows you to fetch any file pointed to by a ftp , http , file , git or rsync uri by a number of different means. See the HOW IT WORKS section further down for details.
This package provides the bulk of the core testing facilities. For more information, see perldoc for Test::Simple, Test::More, etc. This package is the CPAN component of the dual-lifed core package Test-Simple.
This distribution provides a Perl interface to allow reading and writing of compressed data created with the zlib and bzip2 libraries. IO-Compress supports reading and writing of bzip2, RFC 1950, RFC 1951, RFC 1952 (i.e. gzip) and zip files/buffers. The following modules used to be distributed separately, but are now included with the IO-Compress distribution: Compress-Zlib IO-Compress-Zlib IO-Compress-Bzip2 IO-Compress-Base
A distribution of modules to handle locale codes
Locale-Codes is a distribution containing a set of modules designed to work with sets of codes which uniquely identify something.
Utilities to replace common UNIX commands in Makefiles
The module is used to replace common UNIX commands. In all cases the functions work from @ARGV rather than taking arguments. This makes them easier to deal with in Makefiles.
A set of version requirements for a CPAN dist
A CPAN::Meta::Requirements object models a set of version constraints like those specified in the META.yml or META.json files in CPAN distributions, and as defined by CPAN::Meta::Spec; It can be built up by adding more and more constraints, and it will reduce them to the simplest representation. Logically impossible constraints will be identified immediately by thrown exceptions.
Perl extension for sharing data structures between threads
By default, variables are private to each thread, and each newly created thread gets a private copy of each existing variable. This module allows you to share variables across different threads (and pseudo-forks on Win32). It is used together with the threads module. This module supports the sharing of the following data types only: scalars and scalar refs, arrays and array refs, and hashes and hash refs.
Efficiently compute time from local and GMT time
This module provides functions that are the inverse of built-in perl functions localtime() and gmtime(). They accept a date as a six-element array, and return the corresponding time(2) value in seconds since the system epoch (Midnight, January 1, 1970 GMT on Unix, for example).
Extended crypt library for DES, MD5, Blowfish and others
libxcrypt is a modern library for one-way hashing of passwords. It supports a wide variety of both modern and historical hashing methods: yescrypt, gost-yescrypt, scrypt, bcrypt, sha512crypt, sha256crypt, md5crypt, SunMD5, sha1crypt, NT, bsdicrypt, bigcrypt, and descrypt. It provides the traditional Unix crypt and crypt_r interfaces, as well as a set of extended interfaces pioneered by Openwall Linux, crypt_rn, crypt_ra, crypt_gensalt, crypt_gensalt_rn, and crypt_gensalt_ra. libxcrypt is intended to be used by login(1), passwd(1), and other similar programs; that is, to hash a small number of passwords during an interactive authentication dialogue with a human. It is not suitable for use in bulk password-cracking applications, or in any other situation where speed is more important than careful handling of sensitive data. However, it is intended to be fast and lightweight enough for use in servers that must field thousands of login attempts per minute.
The Encode module provides the interface between Perl strings and the rest of the system. Perl strings are sequences of characters.
Walk Perl syntax tree, printing debug info about ops
See ext/B/README and the newer B::Concise.
Parse text into an array of tokens or array of arrays
The &nested_quotewords() and &quotewords() functions accept a delimiter (which can be a regular expression) and a list of lines and then breaks those lines up into a list of words ignoring delimiters that appear inside quotes. &quotewords() returns all of the tokens in a single long list, while &nested_quotewords() returns a list of token lists corresponding to the elements of @lines. &parse_line() does tokenizing on a single string. The &*quotewords() functions simply call &parse_line(), so if you're only splitting one line you can call &parse_line() directly and save a function call. The $keep argument is a boolean flag. If true, then the tokens are split on the specified delimiter, but all other characters (including quotes and backslashes) are kept in the tokens. If $keep is false then the &*quotewords() functions remove all quotes and backslashes that are not themselves backslash-escaped or inside of single quotes (i.e., &quotewords() tries to interpret these characters just like the Bourne shell). NB: these semantics are significantly different from the original version of this module shipped with Perl 5.000 through 5.004. As an additional feature, $keep may be the keyword "delimiters" which causes the functions to preserve the delimiters in each string as tokens in the token lists, in addition to preserving quote and backslash characters.
The Digest::MD5 module allows you to use the RSA Data Security Inc. MD5 Message Digest algorithm from within Perl programs. The algorithm takes as input a message of arbitrary length and produces as output a 128-bit "fingerprint" or "message digest" of the input.
This module provides a convenient way to create directories of arbitrary depth and to delete an entire directory subtree from the filesystem.
This package takes Unicode data of arbitrary forms and canonicalizes it to a standard representation(Unicode Standard Annex #15).
Text::Tabs does most of what the unix utilities expand(1) and unexpand(1) do. Given a line with tabs in it, expand replaces those tabs with the appropriate number of spaces. Given a line with or without tabs in it, unexpand adds tabs when it can save bytes by doing so, like the unexpand -a command. Unlike the old unix utilities, this module correctly accounts for any Unicode combining characters (such as diacriticals) that may occur in each line for both expansion and unexpansion. These are overstrike characters that do not increment the logical position. Make sure you have the appropriate Unicode settings enabled.
This module provides thread-safe FIFO queues that can be accessed safely by any number of threads. Any data types supported by threads::shared can be passed via queues: -Ordinary scalars -Array refs -Hash refs -Scalar refs -Objects based on the above Ordinary scalars are added to queues as they are. If not already thread-shared, the other complex data types will be cloned (recursively, if needed, and including any blessings and read-only settings) into thread-shared structures before being placed onto a queue.
A module that will return you the output of 'perl -V' in a structure
The command 'perl -V' will return you an excerpt from the %Config hash combined with the output of 'perl -V' that is not stored inside %Config, but only available to the perl binary itself.
podchecker will perform syntax checking of Perl5 POD format documentation.
Tools for working with directory and file names.
Version objects were added to Perl in 5.10. This module implements version objects for older version of Perl and provides the version object API for all versions of Perl. All previous releases before 0.74 are deprecated and should not be used due to incompatible API changes. Version 0.77 introduces the new 'parse' and 'declare' methods to standardize usage. You are strongly urged to set 0.77 as a minimum in your code, e.g. use version 0.77; # even for Perl v.5.10.0
Object class for SysV as well as the SysV IPC constants and system calls
The SysV-IPC contains three packages IPC::Semaphore - Provides an object interface to using SysV IPC semaphores IPC::Msg - Provides an object interface to using SysV IPC messages IPC::SysV - Provides the constants required to use the system SysV IPC calls. Currently there is not object support for SysV shared memory, but SysV::SharedMem is a project for the future.
This package is the shared library for perl.
Common Scalar and List utility subroutines
This package contains a selection of subroutines that people have expressed would be nice to have in the perl core, but the usage would not really be high enough to warrant the use of a keyword, and the size so small such that being individual extensions would be wasteful.
The Storable extension brings persistence to your data. You may recursively store to disk any data structure, no matter how complex and circular it is, provided it contains only SCALAR, ARRAY, HASH (possibly tied) and references (possibly blessed) to those items.
Print a usage message from embedded pod documentation
Pod2usage will print a usage message for the invoking script (using its embedded pod documentation) and then exit the script with the desired exit status. The usage message printed may have any one of three levels of "verboseness": If the verbose level is 0, then only a synopsis is printed. If the verbose level is 1, then the synopsis is printed along with a description (if present) of the command line options and arguments. If the verbose level is 2, then the entire manual page is printed.
Perl extension for SHA-1/224/256/384/512
Digest::SHA is a complete implementation of the NIST Secure Hash Standard. It gives Perl programmers a convenient way to calculate SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, and SHA-512/256 message digests. The module can handle all types of input, including partial-byte data.
Locale::Maketext is a framework for software localization; it provides you with the tools for organizing and accessing the bits of text and text-processing code that you need for producing localized applications.
what modules shipped with versions of perl
Module::CoreList provides information on which core and dual-life modules shipped with each version of perl. It provides a number of mechanisms for querying this information. There is a utility called corelist provided with this module which is a convenient way of querying from the command-line. There is a functional programming API available for programmers to query information. Programmers may also query the contained hash structures to find relevant information.
Extended processing of command line options
Module Getopt::Long implements an extended getopt function called GetOptions(). This function implements the POSIX standard for command line options, with GNU extensions, while still capable of handling the traditional one-letter options.
Map Perl operating system names to generic types
Modules that provide OS-specific behaviors often need to know if the current operating system matches a more generic type of operating systems. For example, 'linux' is a type of 'Unix' operating system and so is 'freebsd'.
High resolution time, sleep, and alarm for perl
Implement usleep, ualarm, and gettimeofday for Perl, as well as wrappers to implement time, sleep, and alarm that know about non-integral seconds.
A module for manipulations of tar archives
archive::Tar provides an object oriented mechanism for handling tar files. It provides class methods for quick and easy files handling while also allowing for the creation of tar file objects for custom manipulation. If you have the IO::Zlib module installed, Archive::Tar will also support compressed or gzipped tar files.
This pragma allows you to declare constants at compile-time. When a constant is used in an expression, Perl replaces it with its value at compile time, and may then optimize the expression further. In particular, any code in an "if (CONSTANT)" block will be optimized away if the constant is false.
Perl Pollution Portability header generator
Perl's API has changed over time, gaining new features, new functions, increasing its flexibility, and reducing the impact on the C name space environment (reduced pollution). The header file written by this module, typically ppport.h, attempts to bring some of the newer Perl API features to older versions of Perl, so that you can worry less about keeping track of old releases, but users can still reap the benefit.
This 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.
The Filter::Simple Perl module provides a simplified interface to Filter::Util::Call; one that is sufficient for most common cases.
Stringified perl data structures, suitable for both printing and eval
Given a list of scalars or reference variables, 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. Handles self-referential structures correctly. The return value can be evaled to get back an identical copy of the original reference structure. (Please do consider the security implications of eval'ing code from untrusted sources!)
Looking up module information / loading at runtime
Module::Load::Conditional provides simple ways to query and possibly load any of the modules you have installed on your system during runtime. It is able to load multiple modules at once or none at all if one of them was not able to load. It also takes care of any error checking and so forth.
Establish an ISA relationship with base classes at compile time
Allows you to both load one or more modules, while setting up inheritance from those modules at the same time.
Look up Perl documentation in Pod format
perldoc looks up a piece of documentation in .pod format that is embedded in the perl installation tree or in a perl script, and displays it via "groff -man | $PAGER". This is primarily used for the documentation for the perl library modules.
The Digest:: modules calculate digests, also called "fingerprints" or "hashes", of some data, called a message. The digest is (usually) some small/fixed size string. The actual size of the digest depend of the algorithm used. The message is simply a sequence of arbitrary bytes or bits.
A highly capable, feature-rich programming language
Perl 5 is a highly capable, feature-rich programming language with over 30 years of development. Perl 5 runs on over 100 platforms from portables to mainframes and is suitable for both rapid prototyping and large scale development projects.
Finding and running system commands made easy
IPC::Cmd allows for the searching and execution of any binary on your system. It adheres to verbosity settings and is able to run intereactive. It also has an option to capture output/error buffers.
Provides a Perl interface to the zlib compression library
This module provides a Perl interface to the zlib compression library.
Utilities to write and check a MANIFEST file
Utilities to write and check a MANIFEST file.
Replace functions with ones that succeed or die with lexical scope
The autodie pragma provides a convenient way to replace functions that normally return false on failure with equivalents that throw an exception on failure. The autodie pragma has lexical scope, meaning that functions and subroutines altered with autodie will only change their behaviour until the end of the enclosing block, file, or eval.
Implements default import method for modules
The Exporter module implements an import method which allows a module to export functions and variables to its users' name spaces. Many modules use Exporter rather than implementing their own import method because Exporter provides a highly flexible interface, with an implementation optimized for the common case.
Gather package and POD information from perl module files
This module provides a standard way to gather metadata about a .pm file through (mostly) static analysis and (some) code execution. When determining the version of a module, the $VERSION assignment is evaled, as is traditional in the CPAN toolchain.This module provides a standard way to gather metadata about a .pm file through (mostly) static analysis and (some) code execution. When determining the version of a module, the $VERSION assignment is evaled, as is traditional in the CPAN toolchain.
These are low-level functions to extract and use capabilities from a terminal capability (termcap) database.
Perl clients for various network protocols
libnet is a collection of Perl modules which provides a simple and consistent programming interface (API) to the client side of various protocols used in the internet community.
This utility is designed to write a Makefile for an extension module from a Makefile.PL. It is based on the Makefile.SH model provided by Andy Dougherty and the perl5-porters. It splits the task of generating the Makefile into several subroutines that can be individually overridden. Each subroutine returns the text it wishes to have written to the Makefile. As there are various Make programs with incompatible syntax, which use operating system shells, again with incompatible syntax, it is important for users of this module to know which flavour of Make a Makefile has been written for so they'll use the correct one and won't have to face the possibly bewildering errors resulting from using the wrong one. On POSIX systems, that program will likely be GNU Make; on Microsoft Windows, it will be either Microsoft NMake, DMake or GNU Make. See the section on the "MAKE" parameter for details. ExtUtils::MakeMaker (EUMM) is object oriented. Each directory below the current directory that contains a Makefile.PL is treated as a separate object. This makes it possible to write an unlimited number of Makefiles with a single invocation of WriteMakefile(). All inputs to WriteMakefile are Unicode characters, not just octets. EUMM seeks to handle all of these correctly. It is currently still not possible to portably use Unicode characters in module names, because this requires Perl to handle Unicode filenames, which is not yet the case on Windows.
The GNU C Library project provides the core libraries for the GNU system and GNU/Linux systems, as well as many other systems that use Linux as the kernel. These libraries provide critical APIs including ISO C11, POSIX.1-2008, BSD, OS-specific APIs and more. These APIs include such foundational facilities as open, read, write, malloc, printf, getaddrinfo, dlopen, pthread_create, crypt, login, exit and more.
JSON::PP is a pure perl JSON decoder/encoder, and (almost) compatible to much faster JSON::XS written by Marc Lehmann in C. JSON::PP works as a fallback module when you use JSON module without having installed JSON::XS. Because of this fallback feature of JSON.pm, JSON::PP tries not to be more JavaScript-friendly than JSON::XS (i.e. not to escape extra characters such as U+2028 and U+2029, etc), in order for you not to lose such JavaScript-friendliness silently when you use JSON.pm and install JSON::XS for speed or by accident. If you need JavaScript-friendly RFC7159-compliant pure perl module, try JSON::Tiny, which is derived from Mojolicious web framework and is also smaller and faster than JSON::PP.
ExtUtils::ParseXS will compile XS code into C code by embedding the constructs necessary to let C functions manipulate Perl values and creates the glue necessary to let Perl access those functions. The compiler uses typemaps to determine how to map C function parameters and variables to Perl values.
Drop-in replacement for IO::Socket::INET supporting both IPv4 and IPv6
This module provides a protocol-independent way to use IPv4 and IPv6 sockets, intended as a replacement for the IO::Socket::INET manpage. Most constructor arguments and methods are provided in a backward-compatible way.
Perl module that imports environment variables as scalars or arrays
Perl maintains environment variables in a special hash named %ENV. For when this access method is inconvenient, the Perl module Env allows environment variables to be treated as scalar or array variables.
Basic perl modules for handling Plain Old Documentation (POD)
This software distribution contains the packages for using Perl5 POD (Plain Old Documentation). See the "perlpod" and "perlsyn" manual pages from your Perl5 distribution for more information about POD.
This pragma provides an easy and convenient way to enable or disable experimental features.
Return name and handle of a temporary file safely
File::Temp can be used to create and open temporary files in a safe way. There is both a function interface and an object-oriented interface. The File::Temp constructor or the tempfile() function can be used to return the name and the open file handle of a temporary file. The tempdir() function can be used to create a temporary directory. The security aspect of temporary file creation is emphasized such that a filehandle and filename are returned together. This helps guarantee that a race condition can not occur where the temporary file is created by another process between checking for the existence of the file and its opening. Additional security levels are provided to check, for example, that the sticky bit is set on world writable directories. See "safe_level" for more information. For compatibility with popular C library functions, Perl implementations of the mkstemp() family of functions are provided. These are, mkstemp(), mkstemps(), mkdtemp() and mktemp(). Additionally, implementations of the standard POSIX tmpnam() and tmpfile() functions are provided if required. Implementations of mktemp(), tmpnam(), and tempnam() are provided, but should be used with caution since they return only a filename that was valid when function was called, so cannot guarantee that the file will not exist by the time the caller opens the filename. Filehandles returned by these functions support the seekable methods.
PerlIO layer for quoted-printable strings
This module implements a PerlIO layer that works on files encoded in the quoted-printable format. It will decode from quoted-printable while reading from a handle, and it will encode as quoted-printable while writing to a handle.
Math::BigInt::Calc with some XS for more speed
Math::BigInt::FastCalc inherits from Math::BigInt::Calc. Provides support for big integer calculations. Not intended to be used by other modules. Other modules which sport the same functions can also be used to support Math::BigInt, like Math::BigInt::GMP or Math::BigInt::Pari.
Since Perl 5.8, thread programming has been available using a model called interpreter threads which provides a new Perl interpreter for each thread, and, by default, results in no data or state information being shared between threads. (Prior to Perl 5.8, 5005threads was available through the "Thread.pm" API. This threading model has been deprecated, and was removed as of Perl 5.10.0.)
Pod::Simple is a Perl library for parsing text in the Pod ("plain old documentation") markup language that is typically used for writing documentation for Perl and for Perl modules. The Pod format is explained in perlpod; the most common formatter is called perldoc.
Run Perl standard test scripts with statistics
This package allows tests to be run and results automatically aggregated and output to STDOUT.
Perl modules installing and uninstalling
This module provides things that are useful in decoding Pod E<...> sequences. Presumably, it should be used only by Pod parsers and/or formatters. By default, Pod::Escapes exports none of its symbols. But you can request any of them to be exported. Either request them individually, as with `use Pod::Escapes qw(symbolname symbolname2...);', or you can do `use Pod::Escapes qw(:ALL);' to get all exportable symbols.
The perlfaq comprises several documents that answer the most commonly asked questions about Perl and Perl programming.
Color screen output using ANSI escape sequences
This Perl module is a simple and convenient interface to the ANSI terminal escape sequences for color (from ECMA-48, also included in ISO 6429). The color sequences are provided in two forms, either as constants for each color or via a function that takes the names of colors and returns the appropriate escape codes or wraps them around the provided text. The non-color text style codes from ANSI X3.64 (bold, dark, underline, and reverse, for example), which were also included in ECMA-48 and ISO 6429, are also supported. Also supported are the extended colors used for sixteen-color and 256-color emulators.
Low-Level Interface to bzip2 compression library
Compress-Raw-Bzip2 provides the interface to the bzip2 library for the modules IO::Compress::Bzip2 and IO::Compress::Bunzip2.