Recent Perl modules, releases and favorites.
Last updated 4 March 2026 08:30 PM
Last updated 4 March 2026 08:30 PM
Simple Google Geocoding API client
Google::GeoCoder::Smart is a Perl module that serves as a lightweight client for the Google Geocoding API v3, allowing developers to easily convert structured addresses and place IDs into geographic coordinates. By utilizing this module, users can send geocoding requests to the Google API and receive decoded responses, complete with raw JSON data for debugging purposes. The module supports various optional parameters such as language, region, and components, enhancing its flexibility for different geocoding needs. Recent updates have improved the module's structure and testing capabilities, including the addition of explicit CPAN metadata and enhanced test coverage, ensuring a more robust and user-friendly experience.
Zonemaster-LDNS
Release | 4 Mar 2026 04:41 PM | Author: ZNMSTR | Version: 5.0.2
Upvotes: 1 | CPAN Testers: Unknown 100.0%
Perl wrapper for the ldns DNS library
Zonemaster::LDNS is a Perl module that serves as a wrapper for the ldns DNS library, enabling developers to create DNS resolvers that can send queries and receive responses. This module allows for various DNS operations, including querying for resource records, performing zone transfers, and converting domain names to A-labels. It provides a flexible interface for managing DNS settings, such as recursion, DNSSEC, and timeouts, while also supporting advanced features like AXFR for zone transfers. Recent updates in version 5.0.2 have improved robustness by adding checks for cryptographic SHA-1 support during installation and enhancing handling of unknown resource record types. With its comprehensive functionality, Zonemaster::LDNS is an essential tool for developers working with DNS in Perl applications.
A tool to check the quality of a DNS zone
Zonemaster::Engine is a comprehensive Perl module designed to assess the quality of DNS zones through a series of automated tests. By invoking the `test_zone` method with a domain name, users can execute a full suite of tests, receiving detailed results encapsulated in Zonemaster::Engine::Logger::Entry objects. The module supports various functionalities, including the ability to initialize the testing environment, manage test profiles, and handle DNS queries recursively. Recent updates in version 8.1.1 have addressed several critical issues, including fixes for the Nameserver13 implementation and improvements to the upward referral guard, ensuring more reliable DNS zone testing. This module is essential for developers and system administrators seeking to enhance their DNS configurations and ensure optimal performance.
Test-Mockingbird
Favorite | 4 Mar 2026 03:10 PM | Author: NHORNE | Version: 0.03
Upvotes: 1 | CPAN Testers: Pass 100.0%
Advanced mocking library for Perl with support for dependency injection and spies
Test::Mockingbird is an advanced mocking library for Perl that enhances testing capabilities through powerful features such as mocking, spying, and dependency injection. With this module, developers can easily replace methods in their code with mock implementations, track calls to methods with spies, and inject mock dependencies to facilitate isolated testing. The recent version 0.03 introduced shorthand syntax for method mocking and a new `mock_scoped` feature, which allows for temporary mocks that automatically restore the original method when they go out of scope, simplifying the management of test environments. This module is ideal for Perl developers looking to streamline their testing processes and improve code reliability.
Affix
Favorite | 4 Mar 2026 03:06 PM | Author: SANKO | Version: v1.0.8
Upvotes: 5 | CPAN Testers: Pass 100.0%
A Foreign Function Interface eXtension
Affix is a powerful Foreign Function Interface (FFI) extension for Perl that enables seamless integration with native libraries written in languages such as C, Rust, and Fortran, without the need for XS code or complex compiler management. It provides a high-performance bridge to native software, allowing developers to bind and call functions, work with C structs, manage raw memory, and perform pointer arithmetic with ease. Affix features an extensive type system that supports various data types, including primitives, nested structs, and SIMD vectors, while leveraging a Just-In-Time (JIT) compilation engine for optimized performance. With built-in memory management, error handling, and library discovery capabilities, Affix simplifies the process of interfacing Perl with external libraries, making it an ideal choice for developers looking to enhance their Perl applications with native functionality.
Perl Data Language
PDL, or Perl Data Language, is a powerful Perl extension designed for efficient scientific and bulk numeric data processing and visualization. It enhances Perl's capabilities by providing fully vectorized, multidimensional array handling, making it suitable for managing large datasets such as images and spectra. With its fast performance, often surpassing that of IDL and MATLAB, PDL allows users to perform complex mathematical operations and manipulations on N-dimensional arrays with ease. The module includes an interactive shell for learning and exploring its functions, along with extensive documentation and tutorials to support users from beginners to advanced levels.
Amazon-CreatorsAPI
Release | 4 Mar 2026 01:57 PM | Author: BAYASHI | Version: 0.01
CPAN Testers: Pass 100.0%
The Amazon Creators API Helper
Amazon::CreatorsAPI is a Perl module designed to facilitate interaction with the Amazon Creators API, enabling developers to easily access and manage Amazon's affiliate program features. By providing a straightforward interface, this module allows users to perform various operations such as searching for items, retrieving item details, and accessing browse nodes with minimal effort. With methods like `search_items` and `get_items`, developers can quickly integrate Amazon's product data into their applications, making it an essential tool for those looking to leverage Amazon's affiliate offerings. The module is open-source and available on GitHub, encouraging community contributions and feedback.
XML-PugiXML
Favorite | 4 Mar 2026 01:38 PM | Author: EGOR | Version: 0.01
Perl binding for pugixml C++ XML parser
XML::PugiXML is a Perl module that provides a binding to the pugixml C++ XML parsing library, enabling fast and efficient XML document manipulation. With a clean and intuitive API, it allows users to create, load, and modify XML documents easily, whether from strings or files. The module supports XPath queries for selecting nodes, including the ability to compile XPath expressions for improved performance on repeated queries. Users can navigate the XML structure, access and modify attributes, and serialize documents back to XML format with customizable formatting options. Designed for performance, XML::PugiXML is significantly faster than other XML processing modules, making it an excellent choice for applications requiring robust XML handling capabilities.
Decide whether to allow a client to run this script
CGI::ACL is a Perl module designed to manage client access to CGI scripts based on IP addresses and geographical locations. It allows developers to specify which IPs or countries are permitted or denied access, providing a flexible way to control who can interact with their web applications. The module can integrate with CGI::Lingua to detect the client's country, enabling more nuanced access control. Additionally, it features the ability to block requests from major cloud hosting providers, helping to mitigate unwanted traffic from bots and scrapers. With methods for allowing and denying access, as well as evaluating all restrictions, CGI::ACL offers a comprehensive solution for securing CGI scripts against unauthorized access.
Colorful calendar command for ANSI terminal
The `week` Perl module is a colorful calendar command designed for ANSI terminals, allowing users to display a visually appealing weekly calendar. With version 1.07, it introduces enhancements such as the use of non-breaking space (NBSP) for frame characters to improve compatibility with terminal emulators, and it raises the minimum required Perl version from 5.14 to 5.24. The module supports various options, including internationalization features and specific team-related displays, making it versatile for different user needs. The author, Kazumasa Utashiro, has ensured that the module remains free software, adhering to Perl's licensing terms.
Term-ANSIEncode
Release | 4 Mar 2026 02:42 AM | Author: RKELSCH | Version: 1.94
Markup Language for ANSI Encoding
The Term::ANSIEncode Perl module provides a markup language for generating ANSI text, enabling developers to create visually appealing terminal output with various colors and formatting options. It requires a UTF-8 compatible terminal to support special characters and offers a range of tokens for cursor movement, text attributes, and color settings, including foreground and background colors. Users can easily instantiate the module and utilize its methods to encode strings with ANSI sequences, allowing for features like text framing, line clearing, and text wrapping. This module is particularly useful for enhancing command-line interfaces and creating dynamic text displays in terminal applications.
OpenAPI-Linter
Release | 4 Mar 2026 01:24 AM | Author: MANWAR | Version: 0.17
Validate and lint OpenAPI 3.x specification files
OpenAPI::Linter is a Perl module designed to validate and lint OpenAPI 3.x specification files, ensuring they adhere to both the official OpenAPI JSON Schema and a set of semantic rules. It operates in two phases: first, it performs structural validation against the OpenAPI schema, and then it applies semantic checks to assess documentation completeness, naming conventions, and more. Users can easily create a linter instance by providing a path to a YAML or JSON file or a pre-parsed specification. The module returns a list of issues, categorized by severity, allowing developers to filter results based on error levels or specific message patterns. Notably, version 0.17 introduced bundled OpenAPI meta-schemas for offline validation, enhancing usability in environments without internet access, and improved issue reporting by including detailed location information for each problem found in the specification.
Alien-pugixml
Release | 3 Mar 2026 10:28 PM | Author: EGOR | Version: 0.02
CPAN Testers: Pass 100.0%
Find or build pugixml C++ XML parser library
The `Alien::pugixml` Perl module serves as a bridge to the pugixml C++ XML parser library, enabling Perl developers to easily integrate XML parsing capabilities into their applications. It intelligently checks for the availability of the pugixml library on the system and, if not found, automatically downloads and builds it from source. By utilizing this module, developers can seamlessly configure their projects to include the necessary compiler flags and library links, streamlining the process of working with XML data in Perl.
ExtUtils-MakeMaker
Release | 3 Mar 2026 08:35 PM | Author: BINGOS | Version: 7.78
Upvotes: 64 | CPAN Testers: Pass 100.0%
Create a module Makefile
ExtUtils::MakeMaker is a Perl module that simplifies the creation of Makefiles for Perl extension modules. By using the `WriteMakefile` function, developers can easily generate a Makefile from a `Makefile.PL` script, which facilitates the building, testing, and installation of Perl modules. This utility is designed to handle various Make programs and their syntax differences across operating systems, ensuring compatibility and reducing errors during the build process. ExtUtils::MakeMaker supports Unicode characters, allows for customization of installation paths, and provides a structured way to manage dependencies and module metadata. It is an essential tool for Perl developers looking to streamline the module creation process and ensure proper installation across different environments.
Remove leading and/or trailing whitespace from strings
The Text::Trim Perl module provides a simple and efficient way to remove leading and/or trailing whitespace from strings, making it an essential tool for text processing. With functions like `trim`, `ltrim`, and `rtrim`, users can easily manipulate strings in various contexts—whether modifying them in place or returning trimmed versions without altering the originals. This module supports Unicode whitespace characters, ensuring compatibility with a wide range of text inputs. Its straightforward interface and default export of all functions make it easy to integrate into any Perl script, enhancing the handling of string data with minimal effort.
A PKCS11 interface for Perl
Crypt::HSM is a Perl module that provides an interface to PKCS11 libraries, enabling developers to leverage cryptographic operations through hardware tokens or software implementations. With this module, users can load a PKCS11 provider, access available slots, open sessions, and perform various cryptographic tasks such as key management, encryption, and random number generation. The recent version 0.026 introduced a compatibility fix for Perl versions earlier than 5.38, ensuring broader usability of the module. This makes Crypt::HSM a valuable tool for developers looking to integrate secure cryptographic functionalities into their Perl applications.
Module-Build-Tiny
Release | 3 Mar 2026 07:42 PM | Author: LEONT | Version: 0.053
Upvotes: 16 | CPAN Testers: Pass 100.0%
A tiny replacement for Module::Build
Module::Build::Tiny is a lightweight alternative to the traditional Module::Build system used for Perl distribution configuration, build, test, and installation processes. With less than 200 lines of code, it offers essential features for most distributions, including support for pure Perl distributions, XS or C building, recursive test files, MYMETA generation, and man page creation, while maintaining a simple and efficient interface. Users can easily replace their existing Build.PL files with this module to streamline their build process without sacrificing functionality. However, it does not support HTML documentation generation or extensibility, making it ideal for developers seeking a straightforward solution for their Perl module builds.
Config-Model-Tester
Release | 3 Mar 2026 06:42 PM | Author: DDUMONT | Version: 4.009
Test framework for Config::Model
Config::Model::Tester is a Perl module designed to facilitate the testing of configuration models within the Config::Model framework. It provides a structured approach to create and run tests for various configuration models, allowing developers to define test cases in specific files that outline the expected behavior and data structures. The module supports complex configurations, enabling tests to be organized in a hierarchical manner, and it accommodates different file layouts depending on the application being tested. With features such as logging, error tracing, and the ability to skip tests based on conditions, Config::Model::Tester streamlines the process of validating configuration models, ensuring they function correctly across different scenarios and setups.
Config-Model
Release | 3 Mar 2026 06:24 PM | Author: DDUMONT | Version: 2.157
A framework to validate, migrate and edit configuration files
Config::Model is a powerful Perl framework designed to facilitate the validation, migration, and editing of configuration files. It allows developers to create interactive configuration editors that can be graphical, terminal-based, or curses-based, providing users with an intuitive interface for managing configuration settings. By defining a configuration model that outlines the structure and constraints of the configuration data, Config::Model generates user-friendly interfaces that include integrated help and data validation. The framework supports various backends for reading and writing configuration data, making it adaptable to different file formats. With features for configuration upgrades and a command-line interface for quick modifications, Config::Model streamlines the process of managing application configurations, ensuring ease of maintenance and user accessibility.
Alien-MariaDB
Release | 3 Mar 2026 05:37 PM | Author: EGOR | Version: 0.01
Find or build libmariadb client library
The `Alien::MariaDB` Perl module is designed to facilitate the integration of the MariaDB Connector/C client library (libmariadb) into your Perl applications. It intelligently checks for the availability of the system's libmariadb library and, if not found, automatically downloads and builds it from source, ensuring that your application has the necessary dependencies to function correctly. By utilizing this module, developers can easily configure their build process with the appropriate compiler flags and library paths, streamlining the setup of MariaDB connectivity in their projects.
Test-Nginx
Release | 3 Mar 2026 05:28 PM | Author: AGENT | Version: 0.32
Data-driven test scaffold for Nginx C module and Nginx/OpenResty-based libraries and applications
The `Test::Nginx` Perl module provides a robust framework for data-driven testing of Nginx C modules and applications built on Nginx/OpenResty. It primarily features `Test::Nginx::Socket`, which is recommended for its low-level testing capabilities, allowing developers to identify connection issues that higher-level libraries like `Test::Nginx::LWP` might miss. This module automatically starts an Nginx instance for testing, with customizable configurations, including the ability to specify the port through the `TEST_NGINX_PORT` environment variable. Recent updates in version 0.32 include several bug fixes and new features such as support for dynamic proxy paths and enhanced error handling, making it an essential tool for developers working with Nginx modules.
Libvirt Perl API
The Sys::Virt Perl module provides a powerful interface for managing virtualization environments through the libvirt API, enabling users to connect to various hypervisors and perform operations on virtual machines, networks, and storage pools. With this module, developers can easily create, define, and manage domains (virtual machines), as well as handle network configurations and storage resources using a consistent API. It supports various connection URIs for different hypervisors, including Xen and QEMU, and offers robust error handling and callback mechanisms for event notifications. This makes Sys::Virt an essential tool for automating and managing virtualization tasks in Perl applications.
An OOP interface to Monit
Monit::HTTP is a Perl module that provides an object-oriented interface for interacting with Monit, a utility for managing and monitoring system services. With this module, users can easily connect to a Monit instance over HTTP, retrieve the status of monitored services—including CPU and memory usage, process IDs, and running statuses—and perform various actions such as starting, stopping, or restarting services. The module supports basic HTTP authentication and allows for customization of connection parameters like hostname and port. Additionally, it exports a set of constants for service types and actions, making it straightforward to manage services programmatically. This module is particularly useful for system administrators looking to automate service monitoring and management tasks.
Business-Tax-US-Form_1040-Worksheets
Release | 3 Mar 2026 11:59 AM | Author: JKEENAN | Version: 0.08
IRS Form 1040 worksheets calculations
The Perl module `Business::Tax::US::Form_1040::Worksheets` provides essential functions for calculating and managing the worksheets associated with U.S. IRS Form 1040, specifically targeting the Social Security Benefits Worksheet and the Qualified Dividends and Capital Gain Tax Worksheet. It allows users to compute taxable social security benefits and the necessary data for completing these worksheets, facilitating accurate tax reporting for filing years 2022, 2023, and 2024. The module includes functions for pretty-printing results for easier transcription and ensures monetary values are formatted to two decimal places. A noteworthy recent change in version 0.07 updates the module to accommodate tax year 2024, reflecting the latest IRS guidelines. Users are advised to verify the accuracy of calculations independently, as they have not been reviewed by tax authorities.
Geo-Address-Parser
Release | 3 Mar 2026 10:52 AM | Author: NHORNE | Version: 0.08
Lightweight country-aware address parser from flat text
Geo::Address::Parser is a Perl module designed for lightweight parsing of country-aware addresses from flat text input. It supports address formats for the US, UK, Canada, Australia, New Zealand, and recently added France, allowing users to extract components such as name, road, city, region, and country using country-specific regular expressions. The module can be easily configured at runtime through environment variables and configuration files, enhancing its flexibility. With version 0.08, the latest update introduced support for parsing French addresses, further expanding its utility for international applications. This module is ideal for developers needing to process and validate address data efficiently across multiple countries.
App-PerlPackage2PlantUMLClassDiagram
Release | 3 Mar 2026 09:48 AM | Author: HITODE | Version: 0.03
Generate Plant UML's class diagraom from Perl packages
App::PerlPackage2PlantUMLClassDiagram is a Perl module designed to generate class diagrams in PlantUML format from Perl packages, facilitating the visualization of object-oriented structures in Perl applications. This module serves as the backend for the package2plantumlclassdiagram tool, making it easier for developers to create and maintain UML diagrams directly from their codebase. Notably, in the recent update (version 0.03), the module addressed compatibility issues with Perl 5.40+ by fixing a "Downgrading a use VERSION declaration" error and transitioned its continuous integration from Travis CI to GitHub Actions, enhancing its development workflow.
Data-Path-XS
Favorite | 3 Mar 2026 08:42 AM | Author: EGOR | Version: 0.01
Fast path-based access to nested data structures
Data::Path::XS is a high-performance Perl module designed for efficient access to deeply nested data structures using path-based syntax. It offers multiple APIs tailored for different use cases, including a Keywords API for near-native performance, a String API for general-purpose access, an Array API for pre-parsed paths, and a Compiled API for maximum speed with repeated access patterns. The module supports features like autovivification, negative array indices, and protection against leading-zero and integer overflow issues. With benchmarks showing it to be 10-25 times faster than pure Perl for deep paths, Data::Path::XS is an excellent choice for developers needing rapid and flexible data manipulation. The initial release laid the groundwork for these capabilities, establishing a robust foundation for future enhancements.
Minimalist and high-performance async control flow for EV
EV::Future is a high-performance Perl module designed for managing asynchronous control flow with minimal overhead, leveraging the EV event loop. It allows developers to execute tasks in parallel, with a limit on concurrent tasks, or in a sequential series, all while ensuring efficient memory management and error handling. Each task is defined as a code reference that must call a provided "done" callback upon completion, with built-in protections against double-calling this callback in safe mode. For performance-critical applications, an unsafe mode is available that bypasses certain safety checks, significantly boosting execution speed. The module is particularly useful for applications requiring efficient task management without the complexity of traditional threading models. The initial release in March 2026 introduced core functionalities, including support for parallel execution and cancellation capabilities.