Recent Perl modules, releases and favorites.
Last updated 3 October 2025 12:30 AM
Last updated 3 October 2025 12:30 AM

MRO-Compat
Favorite | 1 Oct 2025 09:30 PM | Author: HAARG | Version: 0.15
Upvotes: 4 | CPAN Testers: Pass 100.0%
Mro::* interface compatibility for Perls < 5.9.5
MRO::Compat is a Perl module designed to provide compatibility for the method resolution order (MRO) interfaces introduced in Perl 5.9.5 for earlier versions of Perl, specifically back to 5.6.0. It allows developers to utilize the mro::* functions, such as mro::get_linear_isa and mro::set_mro, in their code without modification, ensuring that software can run seamlessly on both older and newer Perl versions. The module acts as a no-op on Perl 5.9.5 and above, meaning it does not interfere with existing functionality while enabling the use of modern MRO features in legacy code. Additionally, it offers support for C3 and DFS MRO types, making it a valuable tool for developers looking to maintain compatibility across different Perl environments.

Dist-Zilla-Plugin-Covenant
Favorite | 1 Oct 2025 08:02 PM | Author: YANICK | Version: 0.1.3
Add the author's pledge to the distribution
"Dist::Zilla::Plugin::Covenant" is a Perl module designed to enhance your distribution by adding an author's pledge file, typically named '*AUTHOR_PLEDGE*', to the package. This module automatically identifies the author(s) specified in the *dist.ini* file as the pledgee(s) and modifies the distribution's META file to include an *x_author_pledge* stanza, ensuring that the pledge is formally recognized. With configuration options for setting the pledge version and file name, this plugin streamlines the process of incorporating author commitments into your Perl distributions, promoting transparency and accountability in software development.

B-Keywords
Favorite | 1 Oct 2025 07:55 PM | Author: RURBAN | Version: 1.28
Upvotes: 8 | CPAN Testers: Pass 100.0%
Lists of reserved barewords and symbol names
The B::Keywords Perl module provides a comprehensive collection of arrays that list reserved barewords and symbol names used in Perl programming. By importing arrays such as @Symbols, @Barewords, and others, developers can easily access and utilize keywords related to scalars, arrays, hashes, filehandles, functions, and additional special keywords and operators. This module is particularly useful for those looking to understand or manipulate Perl's keyword system, as it consolidates various types of keywords into easily exportable arrays. With the ability to export all symbols using the :all tag, B::Keywords serves as a valuable resource for enhancing code clarity and maintaining adherence to Perl's syntax rules.

URI-db
Favorite | 1 Oct 2025 07:53 PM | Author: DWHEELER | Version: 0.23
Upvotes: 11 | CPAN Testers: Pass 100.0%
Database URIs
The `URI::db` Perl module provides a structured way to handle database URIs, inspired by JDBC and PostgreSQL URI formats. It allows developers to create and manipulate URIs that specify database connections, including details such as the database engine, user credentials, host, port, database name, and additional parameters. With a straightforward syntax, users can easily construct URIs for various database systems like PostgreSQL, SQLite, and Firebird. The module also includes methods for accessing and modifying URI components, generating DBI DSNs for database connections, and ensuring compatibility with recognized database engines. Although currently in alpha release, `URI::db` aims to maintain functionality as it evolves, making it a valuable tool for Perl developers working with database connections.

Devel-PatchPerl
Favorite | 1 Oct 2025 06:54 PM | Author: BINGOS | Version: 2.14
Upvotes: 8 | CPAN Testers: Pass 100.0%
Patch perl source a la Devel::PPPort's buildperl.pl
Devel::PatchPerl is a Perl module designed to streamline the process of patching Perl source code, inspired by the patching functionality found in Devel::PPPort's buildperl.pl. It provides a straightforward interface for applying patches to specific versions of Perl source code, allowing users to specify the version and the path to the unwrapped source. The module includes features for automatically determining the Perl version from the provided path and updating the patchlevel.h file to reflect applied patches, with special handling for Git repositories. While it facilitates the preparation of Perl builds, it is not intended for testing purposes, making it a valuable tool for developers looking to customize their Perl installations efficiently.

Net-SFTP-Foreign
Favorite | 1 Oct 2025 06:20 PM | Author: SALVA | Version: 1.93
Secure File Transfer Protocol client
Net::SFTP::Foreign is a Perl module that serves as a client for the SSH File Transfer Protocol (SFTP), allowing secure file transfers between machines. It utilizes the OpenSSH SSH client or any compatible SSH command to establish a secure connection, making it a lightweight alternative to other SFTP modules that require additional dependencies. The module supports a wide range of operations, including file uploads and downloads, directory management, and recursive file operations, all while providing robust error handling and options for data conversion. Recent updates have improved the handling of optional arguments in the `put_content` method, enhancing its usability. With its focus on performance and ease of integration into existing SSH infrastructures, Net::SFTP::Foreign is an excellent choice for developers needing reliable SFTP capabilities in Perl.

POE-Component-JobQueue
Favorite | 1 Oct 2025 01:28 PM | Author: RCAPUTO | Version: 0.571
Upvotes: 1 | CPAN Testers: Pass 100.0%
POE component for processing large numbers of tasks with finite numbers of workers
POE::Component::JobQueue is a Perl module designed to efficiently manage queues and worker pools, allowing for the handling of a large number of tasks while controlling resource usage. It supports both active and passive queue types: active queues poll for jobs and spawn workers as needed, while passive queues respond to enqueue events with pre-defined jobs. Users can customize the behavior of the queues through parameters such as worker limits and prioritization functions, enabling flexible job management. This module is particularly useful in scenarios where flow control is necessary to prevent resource exhaustion. Recent updates have continued to enhance its functionality, ensuring it remains a robust choice for asynchronous job processing in Perl applications.

UUID-Tiny
Favorite | 1 Oct 2025 01:05 PM | Author: CAUGUSTIN | Version: 1.04
Upvotes: 13 | CPAN Testers: Pass 100.0%
Pure Perl UUID Support With Functional Interface
UUID::Tiny is a lightweight, pure Perl module designed for creating and testing Universally Unique Identifiers (UUIDs) with a functional interface. It supports the generation of version 1 (time-based), version 3 (MD5-based), version 4 (random), and version 5 (SHA-1-based) UUIDs, making it versatile for various applications. The module emphasizes simplicity by providing straightforward functions for UUID creation and manipulation without the complexity of object-oriented programming. While it is suitable for most use cases, users should note that the random UUIDs generated are not cryptographically secure. UUID::Tiny is easy to integrate, requiring no compilation or installation of additional dependencies, and is designed to work seamlessly with Perl versions 5.8 and above.

App-Netdisco
Release | 30 Sep 2025 06:57 PM | Author: OLIVER | Version: 2.091000
Upvotes: 17 | CPAN Testers
An open source web-based network management tool
App::Netdisco is an open-source, web-based network management tool designed for network administrators to efficiently manage and monitor their networks. It utilizes SNMP to collect data, which is stored in a PostgreSQL database, allowing users to locate devices by MAC or IP address, control switch ports, and maintain an inventory of network hardware. The module features a user-friendly web frontend with a built-in server and a backend daemon for gathering network information and handling interactive requests. Recent updates have introduced new SSH collectors for Arista EOS and Cisco IOS-XE routers, enhancing its capabilities for managing diverse network environments. With extensive documentation and community support, App::Netdisco is a robust solution for modern network management needs.

Math-Random
Release | 30 Sep 2025 04:36 PM | Author: DJERIUS | Version: 0.75
CPAN Testers: Pass 100.0%
Random Number Generators
Math::Random is a Perl module that provides a comprehensive suite of random number generation routines, ported from the C library randlib. It supports a variety of statistical distributions, including uniform, normal, binomial, and Poisson, among others, making it suitable for both basic and advanced statistical applications. The module allows users to set and retrieve random number seeds for reproducibility, and it includes both default and extended routines for generating random deviates. Recent updates in version 0.75, released on September 30, 2025, include bug fixes and enhancements to ensure compatibility with Perl 5.10, as well as improvements in testing for various routines. This module is particularly useful for developers and researchers needing reliable random number generation in their Perl applications.

Class-Load
Favorite | 30 Sep 2025 03:53 PM | Author: ETHER | Version: 0.25
Upvotes: 33 | CPAN Testers: Pass 100.0%
A working (require "Class::Name") and more
Class::Load is a versatile Perl module designed to enhance the way classes are loaded in your applications. Unlike the standard `require` function, which only accepts module names in the "Class/Name.pm" format, Class::Load allows you to use the more intuitive "Class::Name" syntax. It provides several useful functions, such as `load_class`, which loads a specified class and checks if it is already loaded, and `try_load_class`, which attempts to load a class without throwing an error if it fails, returning a success flag instead. Additionally, `is_class_loaded` checks if a class is loaded using advanced heuristics, while `load_optional_class` offers a way to load a class conditionally, returning success or failure based on its existence and loadability. This module is particularly beneficial for projects that require dynamic loading of classes, making it easier to manage dependencies and optional modules.

CallBackery
Release | 30 Sep 2025 03:49 PM | Author: OETIKER | Version: v0.56.5
CallBackery is a Mojolicious+Qooxdoo Framework for building Web Applications
CallBackery is a Perl module designed as an appliance frontend builder that leverages the Mojolicious web framework to facilitate the creation of web applications. It allows developers to configure the Mojolicious engine to handle application logic as web requests are received, providing a structured way to manage application settings, database interactions, and security headers. The module includes attributes for configuration management, database connections, and RPC service handling, along with methods for application startup. Recent updates have improved user experience by enhancing form data handling and ensuring better compatibility with mobile devices, making it easier to build responsive applications. Notably, version 0.56.5 introduced a fix to clear form data when only parent form data is present, enhancing data integrity during user interactions.

Log-Log4perl-Appender-AmazonSES
Release | 30 Sep 2025 02:57 PM | Author: BIGFOOT | Version: v1.0.0
Log::Log4perl::Appender::AmazonSES
Log::Log4perl::Appender::AmazonSES is a Perl module designed to facilitate the sending of log alerts via Amazon Simple Email Service (SES) using SMTP over TLS. It serves as a specialized appender for Log::Log4perl, leveraging the Net::SMTP module to provide a straightforward and well-documented method for email notifications. This module simplifies the process of integrating with modern, authenticated SMTP services, addressing common challenges associated with outdated dependencies and sparse documentation found in other email appenders. Users can easily configure essential parameters such as sender and recipient email addresses, subject lines, and connection settings, making it an efficient choice for developers looking to implement reliable email logging in their applications.

It's new $module
Daje::Plugin::workflow is a Mojolicious plugin designed to integrate with Daje::Workflow, providing a streamlined way to manage workflows within Mojolicious applications. This module simplifies the process of implementing workflow functionalities by leveraging the capabilities of Daje::Workflow and its associated components, such as loaders and database interactions. With its straightforward registration method, developers can easily incorporate workflow management into their projects. The module is built to be compatible with Perl version 5.40 and is released under the same terms as Perl itself. The initial version 0.06 was released on September 30, 2025, marking its introduction to the Perl ecosystem.

MARC-Convert-Wikidata
Release | 30 Sep 2025 11:58 AM | Author: SKIM | Version: 0.31
CPAN Testers: Pass 100.0%
Conversion class between MARC record and Wikidata object
The `MARC::Convert::Wikidata` Perl module serves as a conversion tool that transforms MARC records, specifically from the National Library of the Czech Republic, into items compatible with Wikidata's Wikibase::Datatype format. By utilizing this module, users can instantiate an object with a MARC record and access various methods to retrieve external IDs, determine the type of the record (such as monograph, audiobook, or periodical), and ultimately convert the MARC data into a format suitable for loading into Wikidata. The module includes customizable callbacks for handling specific data fields, making it a flexible solution for integrating library records with the Wikidata platform.

Module-Generic
Release | 30 Sep 2025 11:34 AM | Author: JDEGUEST | Version: v1.1.0
Generic Module to inherit from
Module::Generic is a versatile Perl module designed to serve as a base for creating feature-rich classes with minimal boilerplate code. It provides a robust framework that simplifies object-oriented programming by offering a variety of built-in methods for handling common data types, such as scalars, arrays, hashes, and objects. With support for dynamic method creation through AUTOLOAD, it allows developers to define properties and their types easily, enabling automatic validation and error handling. Additionally, Module::Generic facilitates serialization and deserialization of objects, making it suitable for applications that require data persistence. This module is particularly useful for developers looking to streamline their coding process while maintaining flexibility and extensibility in their Perl applications.

Apache2-API
Release | 30 Sep 2025 11:33 AM | Author: JDEGUEST | Version: v0.4.0
Apache2 API Framework
The Apache2::API module provides a robust framework for accessing the Apache mod_perl API, simplifying the complexities associated with its usage. It allows developers to create and manage HTTP responses, handle errors, and perform various data encoding and decoding tasks, such as JSON and Base64 operations, all while integrating seamlessly with Apache's request and response lifecycle. With features like automatic gzip compression based on client capabilities, language localization, and logging capabilities, this module is designed to enhance the development of web applications using Perl and mod_perl. Notably, the recent version 0.4.0 introduced methods for generating and managing password hashes, including support for various encryption algorithms, further expanding its utility for secure web application development.

SBOM-CycloneDX
Release | 30 Sep 2025 10:33 AM | Author: GDT | Version: 1.05
CycloneDX Perl Library
The SBOM::CycloneDX Perl module is a comprehensive library designed for generating valid CycloneDX Bill of Materials (BOM) files, which are essential for managing software supply chains. CycloneDX is a modern standard that facilitates the representation of software, hardware, and services, enhancing transparency and security in the software ecosystem. This module allows users to create and validate BOMs, manage components and their dependencies, and document licenses and vulnerabilities, all while adhering to the CycloneDX specifications. Recent updates include an enhancement to the SPDX license list and a fix for initialization issues in Perl versions prior to 5.28, ensuring improved compatibility and functionality. With its robust features, SBOM::CycloneDX is an invaluable tool for developers and organizations aiming to streamline their software inventory management and compliance efforts.

Number-ZipCode-JP
Release | 30 Sep 2025 08:34 AM | Author: TANIGUCHI | Version: 0.20250930
Upvotes: 1 | CPAN Testers: Pass 100.0%
Validate Japanese zip-codes
The `Number::ZipCode::JP` Perl module provides a straightforward way to validate Japanese zip codes according to the regulations set by Japan Post Holdings Co., Ltd. It allows users to create instances of zip codes, set or change their values, and check their validity based on specified categories, such as area-specific or company-specific zip codes. The module supports various input formats, including those with non-numeric characters, and can be easily integrated into applications that require zip code validation. Recent updates have focused on refining the underlying table classes used for validation, ensuring that the module remains accurate and reliable for users.

Test-Perl-Critic
Favorite | 29 Sep 2025 09:11 PM | Author: PETDANCE | Version: 1.04
Upvotes: 15 | CPAN Testers: Pass 100.0%
Use Perl::Critic in test programs
Test::Perl::Critic is a Perl module designed to integrate the Perl::Critic static code analysis tool into test scripts that utilize the Test::More framework. It simplifies the process of enforcing coding standards by providing convenient subroutines like `critic_ok()` for individual files and `all_critic_ok()` for testing multiple files or entire directories. This module is particularly useful for developers looking to maintain code quality in their projects, as it allows for customizable configurations through a `.perlcriticrc` file. Notably, in version 1.04, released in March 2018, the performance of `critic_ok()` was significantly improved, making it four times faster by optimizing the creation of Perl::Critic objects, and it now requires Test::Builder version 0.88 or later to support the `done_testing()` method.

Test-Returns
Release | 29 Sep 2025 06:11 PM | Author: NHORNE | Version: 0.02
CPAN Testers: Pass 100.0%
Verify that a method's output agrees with its specification
Test::Returns is a Perl module designed to validate that the output of a method conforms to specified schemas, enhancing the reliability of your code. By utilizing the function `returns_ok`, developers can assert that a returned value meets defined criteria, such as being an integer or an array reference, in a clear and concise manner. This module integrates seamlessly with Test::Builder, making it compatible with popular testing frameworks like Test::Most. Recent updates in version 0.02 have improved the handling of undefined returned values, ensuring more robust testing capabilities. With its straightforward interface and focus on return value validation, Test::Returns is an essential tool for Perl developers aiming to enforce strict output specifications in their applications.

Assert-Refute
Release | 29 Sep 2025 12:40 PM | Author: KHEDIN | Version: 0.1701
Upvotes: 1 | CPAN Testers: Pass 100.0%
Unified testing and assertion tool
The `Assert::Refute` Perl module is a unified testing and assertion tool designed to seamlessly integrate Test::More-like assertions into production code without transforming the entire application into a testing script. It provides a lightweight approach to design-by-contract, allowing developers to inject assertions that verify data correctness and maintain important invariants within their code. The module features a flexible API that includes functions for defining contracts, running assertions, and generating detailed reports on test outcomes. Recent updates include a bug fix for compatibility with Perl versions 5.39.1 and above, ensuring continued reliability and performance. This makes `Assert::Refute` an essential tool for developers looking to enhance the robustness of their applications while maintaining clean and testable code.
Mojolicious ♥ PostgreSQL
Mojo::Pg is a lightweight Perl module designed to simplify the integration of PostgreSQL databases with the Mojolicious web framework, enabling developers to perform both blocking and non-blocking database queries effortlessly. It provides a convenient interface for executing SQL commands, managing database migrations, and utilizing the publish/subscribe pattern for real-time applications. With features like automatic connection caching, support for CRUD operations through SQL::Abstract, and the ability to handle JSON data seamlessly, Mojo::Pg is ideal for building scalable web applications. Notably, the recent version 4.28 includes a fix for a DBD::Pg bug, enhancing the module's reliability and performance.

Config-Writer
Favorite | 29 Sep 2025 10:12 AM | Author: KORNIX | Version: v0.0.4
Module to write configuration files in an easy and safe way
Config::Writer is a Perl module designed to facilitate the safe and efficient creation of configuration files. It allows users to create temporary configuration files with specified ownership and permissions, while also managing backups of existing configuration files. Key features include the ability to retain a specified number of backup files, automatic cleanup of outdated backups, and the option to overwrite existing backups. The module ensures that even if a user forgets to create a backup before editing, they can still restore the original configuration. Recent updates in version 0.0.4 include minor compatibility fixes for CPAN, enhancing its usability for developers.

Otogiri
Release | 29 Sep 2025 08:35 AM | Author: YTURTLE | Version: 0.24
Upvotes: 5 | CPAN Testers: Pass 100.0%
A lightweight medicine for using database
Otogiri is a lightweight Perl module designed to simplify database interactions, functioning similarly to an Object-Relational Mapping (ORM) tool while promoting a "Schema-less, Fat-less" approach. It allows developers to easily connect to databases, perform CRUD operations, and execute queries using a straightforward syntax. With features like automatic handling of last inserted IDs, support for transactions, and the ability to define custom row classes, Otogiri streamlines database management tasks. It also exports SQL query functions for enhanced flexibility in querying. Ideal for developers seeking a minimalistic yet powerful solution for database operations, Otogiri is compatible with various database systems, including SQLite.
A postmodern object system for Perl 5
Moose is a powerful object system for Perl 5 that enhances the language's object-oriented programming capabilities, making it easier and more consistent to create and manage objects. By providing a rich set of features such as type constraints, roles, and method modifiers, Moose allows developers to focus on the design of their applications rather than the underlying mechanics of object-oriented programming. It integrates seamlessly with Class::MOP, enabling advanced metaclass programming and offering a more intuitive syntax for defining classes and attributes. Recent updates in version 2.4000 include improved documentation regarding the interactions between attribute configuration options, particularly clarifying the relationship between "init_arg" and "required" attributes, as well as a change in the release schedule and numbering scheme, reflecting the module's ongoing evolution and commitment to user clarity.

Types-Algebraic
Favorite | 29 Sep 2025 03:05 AM | Author: SEBBE | Version: 0.07
Algebraic data types in perl
The Types::Algebraic Perl module provides a powerful implementation of algebraic data types, enabling developers to create and manipulate structured data containers with ease. Inspired by functional programming languages, this module introduces two key features: the "data" keyword for defining new data types and the "match" keyword for pattern matching against these types. Users can define custom types, such as "Maybe" with constructors "Nothing" and "Just", and then utilize pattern matching to elegantly unpack and process these values. This module facilitates the creation of complex data structures and enhances code readability, making it a valuable tool for Perl developers looking to leverage the benefits of algebraic data types in their applications.

Data-FastPack
Release | 29 Sep 2025 02:44 AM | Author: DRCLAW | Version: v0.3.0
FastPack Record format, Parsing and Serialising
Data::FastPack is a Perl module designed for efficient encoding and decoding of data streams using the FastPack record format, which is particularly well-suited for time-indexed values and inter-process communication (IPC). It allows for the seamless storage of multiple data channels with a shared time base, utilizing a compact binary format that minimizes memory usage and enhances performance, especially on ARM CPUs. The module supports dynamic name aliasing for message IDs, enabling efficient data transmission by mapping names to integer IDs, and includes a meta data channel for application-specific information encoded in JSON or MessagePack. Recent updates in version 0.3.0 introduced a breaking change by removing support for deregistering individual names, while adding a namespace reset message to clear the entire namespace, enhancing the module's flexibility in managing dynamic IDs.

Error-Show
Release | 29 Sep 2025 01:18 AM | Author: DRCLAW | Version: v0.5.0
Locate and Diagnose Errors/Exceptions in Perl programs
The `Error::Show` Perl module is designed to enhance error and exception handling in Perl programs by providing detailed context around errors, both during execution and from the command line. It allows developers to easily locate and diagnose issues by displaying the surrounding lines of code when an error occurs, complete with line numbers and clear formatting. This module can be invoked from the command line to check syntax and capture exceptions without modifying the original code, making it a valuable tool for debugging. Additionally, it supports advanced features such as handling string evaluations and integrating with various exception classes from CPAN, allowing for a more comprehensive error reporting experience. With customizable options for output formatting and context depth, `Error::Show` streamlines the process of identifying and resolving errors in Perl applications.