Recent Perl modules, releases and favorites.
Last updated 3 March 2026 08:31 PM
Last updated 3 March 2026 08:31 PM
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
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.
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
Upvotes: 3 | CPAN Testers: Fail 100.0%
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
CPAN Testers: Pass 100.0%
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
Upvotes: 2 | CPAN Testers: Pass 100.0%
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
CPAN Testers: Pass 100.0%
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
CPAN Testers: Pass 100.0%
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
CPAN Testers: Pass 100.0%
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.
Getopt-Guided
Release | 3 Mar 2026 07:11 AM | Author: SVW | Version: v3.1.0
CPAN Testers: Pass 100.0%
Getopts implementation that follows POSIX utility guidelines
Getopt::Guided is a Perl module designed to provide a robust implementation of the POSIX `getopts` utility for parsing command-line options, adhering closely to POSIX guidelines. Unlike the core Perl `Getopt::Std` module, which processes options in a single call, Getopt::Guided offers an iterator-based approach, allowing for more flexible and user-friendly option handling. It supports various option types, including flags and option-arguments, and provides features such as error handling that restores the original argument list and warns users about issues. Recent updates in version 3.1.0 introduced new functions like `readopts()` for reading default options from a configuration file and `program_name()` for better program identification, along with exporting common exit status constants, enhancing the module's usability and functionality.
Langertha-Knarr
Release | 3 Mar 2026 04:01 AM | Author: GETTY | Version: 0.001
CPAN Testers: Pass 100.0%
LLM Proxy with Langfuse Tracing
Langertha::Knarr is a Perl module designed to serve as a multi-format proxy for large language models (LLMs), including OpenAI, Anthropic, and Ollama, while integrating Langfuse tracing for enhanced observability. Released in its initial version 0.001, this module supports a passthrough mode that allows for seamless tracing of requests, and it can operate within a Docker container, automatically detecting environment settings. Additionally, it features a command-line interface (CLI) that facilitates various operations such as starting the service, managing containers, checking models, and initializing configurations. This module is particularly useful for developers looking to implement LLMs with robust tracing capabilities in their applications.
It's the Daje database classes
Daje::Database::Model is a Perl module designed to facilitate the creation and management of database classes within the Daje framework. It provides a structured approach to database interactions, allowing developers to define models that represent their data and handle database operations efficiently. The module requires Perl version 5.40 or higher and is built with experimental features. Notably, in version 0.25, released on March 3, 2026, a base class for defaults was added, enhancing the module's functionality and usability. This library is open-source and can be freely modified under the same terms as Perl itself.
Google-RestApi
Release | 2 Mar 2026 11:37 PM | Author: MVSJES | Version: v2.1.1
API to Google Drive API V3, Sheets API V4, Calendar API V3, Gmail API V1, Tasks API V1, and Docs API V1
The Google::RestApi module provides a comprehensive framework for interacting with various Google APIs, including Drive, Sheets, Calendar, Gmail, Tasks, and Docs. It simplifies the process of making API calls by managing authentication, request formation, and response handling, allowing developers to focus on their application logic rather than the intricacies of the Google API. Users can create a new RestApi object with configuration options such as authentication details and timeouts, and then utilize specific API modules to perform operations like file management in Google Drive, spreadsheet manipulation in Google Sheets, event scheduling in Google Calendar, email handling in Gmail, task management in Google Tasks, and document editing in Google Docs. The module also supports advanced features like chained API calls and pagination handling, making it a powerful tool for developers looking to integrate Google services into their Perl applications.
Affix
Release | 2 Mar 2026 11:30 PM | Author: SANKO | Version: v1.0.8
Upvotes: 4 | 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.
Recursively copy Perl datatypes
The Clone module in Perl provides a powerful and efficient way to create deep copies of complex data structures, including nested hashes, arrays, scalars, and objects. By using the `clone()` function, developers can duplicate data while ensuring that changes to the cloned structure do not affect the original, making it particularly useful for managing state in applications. The module handles circular references and tied variables gracefully, preserving their behavior in the cloned copies. Recent updates in version 0.48 have optimized performance for critical paths and improved compatibility with various data types, including fixes for cloning issues related to Math::BigInt::GMP objects and threads::shared data structures. With its C-based implementation, Clone is designed for speed, making it an excellent choice for applications that require rapid data manipulation.
Text-SlackEmoji
Release | 2 Mar 2026 10:45 PM | Author: RJBS | Version: 0.011
Upvotes: 1 | CPAN Testers: Pass 100.0%
Data for mapping Slack :emoji_strings: into Unicode text
Text::SlackEmoji is a Perl module designed to facilitate the mapping of Slack emoji strings, such as ":disappointed_relieved:", to their corresponding Unicode representations. By utilizing this module, developers can easily integrate Slack emoji into their applications, ensuring that messages retain their intended visual expressions across different platforms. The module provides a straightforward interface with methods like `emoji_map`, which returns a hash reference of emoji mappings, and `load_emoji`, allowing for dynamic updates to the emoji data without reloading the module. The latest version, 0.011, includes updates for Unicode 16 and compatibility with Perl v5.42, ensuring that users have access to the most current emoji standards.
Alien-libpq
Release | 2 Mar 2026 10:20 PM | Author: EGOR | Version: 0.02
Find or build libpq PostgreSQL client library
The `Alien::libpq` Perl module is designed to facilitate the integration of the PostgreSQL client library, libpq, into Perl applications. It automatically detects and utilizes the system-installed version of libpq if available; otherwise, it can download and build the library from source, ensuring that developers have access to the necessary components for PostgreSQL connectivity. By leveraging this module, users can easily configure their build processes with the appropriate compiler flags and library paths, streamlining the development of database-driven applications. A noteworthy recent update in version 0.02, released on March 3, 2026, introduced dynamic detection of the latest stable PostgreSQL version, enhancing the module's usability and ensuring compatibility with current PostgreSQL releases.
BIMI object
Mail::BIMI is a Perl module designed for the retrieval, validation, and processing of Brand Indicators for Message Identification (BIMI) records. It facilitates the integration of BIMI into email systems by allowing developers to verify the presence and correctness of BIMI records associated with email messages, ensuring that messages are authenticated and comply with BIMI standards. The module requires objects from Mail::DMARC and Mail::SPF for validation and can handle various attributes related to BIMI processing, such as domain and selector information. A noteworthy recent change in version 3.20260302 includes an update to the Certificate Authority (CA) list to incorporate ssl.com, enhancing the module's capabilities in handling certificate validations.
Async etcd v3 client using native gRPC and EV/libev
EV::Etcd is a high-performance asynchronous client for etcd v3, leveraging native gRPC and the EV/libev event loop for efficient communication. It allows developers to interact with etcd's key-value store using non-blocking operations, enabling features such as asynchronous key-value storage (put/get), watching for changes, and managing leases and distributed locks. The module supports comprehensive authentication and authorization mechanisms, making it suitable for secure applications. Additionally, it provides cluster management capabilities, leader election support, and maintenance operations, all designed to facilitate robust and scalable distributed systems. With its straightforward API, EV::Etcd simplifies the integration of etcd into Perl applications, enhancing their performance and responsiveness.
Time-OlsonTZ-Data
Release | 2 Mar 2026 08:15 PM | Author: DBOOK | Version: 0.202601
CPAN Testers: Pass 100.0%
Olson timezone data
The Time::OlsonTZ::Data Perl module provides a comprehensive interface to the Olson timezone database, encapsulating essential timezone data and binary tzfiles for various regions. It allows users to access key functionalities such as retrieving the current version of the database, obtaining canonical and link timezone names, and understanding the relationships between timezones and countries. With functions like olson_tzfile, users can easily obtain the pathname of the binary tzfile for a specified timezone, ensuring accurate and up-to-date timezone information. This module is designed to be regularly updated to reflect changes in timezone rules and data, making it a vital tool for applications that require precise timezone management.
Sys-Async-Virt
Release | 2 Mar 2026 07:58 PM | Author: EHUELS | Version: v0.6.1
Upvotes: 1 | CPAN Testers: Pass 100.0%
LibVirt protocol implementation for clients
The Sys::Async::Virt module provides an asynchronous interface for interacting with LibVirt services through its remote protocol, enabling Perl clients to manage virtualized environments effectively. Built on the LibVirt API, this module allows users to connect to hypervisors, list and manage domains, and handle various virtualization tasks using an object-oriented approach. It supports asynchronous operations through the Future::AsyncAwait framework, allowing for non-blocking calls and efficient handling of remote procedure calls (RPCs). With features like event subscriptions for domain and network changes, as well as comprehensive methods for querying and manipulating virtual resources, Sys::Async::Virt is an essential tool for developers working with virtualization in Perl.
Protocol-Sys-Virt
Release | 2 Mar 2026 07:29 PM | Author: EHUELS | Version: v12.1.0
Transport independent implementation of the remote LibVirt protocol
The `Protocol::Sys::Virt` Perl module provides an abstract implementation of the LibVirt protocol, enabling the development of client and server components for managing virtualization technologies. Unlike its predecessor, `Sys::Virt`, this module offers a truly asynchronous interface, addressing the limitations of blocking API calls inherent in the original design. This is particularly beneficial for developers looking to implement non-blocking operations in their applications. The latest version, v12.1.0, continues to enhance compatibility with the LibVirt project, ensuring that users can leverage the latest features and improvements from the underlying protocol.
Date-Manip
Release | 2 Mar 2026 06:41 PM | Author: SBECK | Version: 6.99
Upvotes: 20 | CPAN Testers: Pass 100.0%
Date manipulation routines
Date::Manip is a comprehensive Perl module designed for effortless date and time manipulation, catering to a wide range of operations such as comparing dates, calculating time intervals, and parsing international date formats. It supports the Gregorian calendar and accounts for daylight saving time, making it versatile for various applications. Users can input dates in numerous formats, extract specific information, convert between time zones, and manage recurring events with ease. With both functional and object-oriented interfaces available, Date::Manip is particularly recommended for its object-oriented approach, which unlocks the full potential of its extensive capabilities. Whether you need to perform simple calculations or complex date manipulations, Date::Manip provides a robust solution for all your date-related programming needs.