CPANscan logo

CPANscan

Recent Perl modules, releases and favorites.
Last updated 23 January 2026 12:30 AM
Perl logo

PDF-Reuse-Tutorial

Release | 22 Jan 2026 09:48 PM | Author: CNIGHS | Version: 0.13
Upvotes: 2 | CPAN Testers: Pass 100.0%
How to produce PDF-files with PDF::Reuse
The `PDF::Reuse::Tutorial` module serves as a comprehensive guide for users looking to create and manipulate PDF files using the `PDF::Reuse` Perl module. It covers essential topics such as reusing existing PDF components, adding graphics and JavaScript, and programmatically generating documents with dynamic content. The tutorial emphasizes the importance of leveraging previously created PDF files as templates, allowing users to efficiently produce new documents without starting from scratch. It also provides practical examples, including how to fill in form fields, create bookmarks, and generate barcodes, making it a valuable resource for both beginners and experienced developers. Notably, recent updates have improved the module's compliance with CPANTS Kwalitee metrics and introduced a section on replacing placeholders with form fields, enhancing its usability for data-driven PDF generation.
Perl logo

PDF-Reuse-OverlayChart

Release | 22 Jan 2026 09:47 PM | Author: CNIGHS | Version: 0.05
Upvotes: 1 | CPAN Testers: Pass 100.0%
Produce simple or mixed charts with PDF::Reuse
The `PDF::Reuse::OverlayChart` module is designed for creating simple to complex charts within PDF documents using Perl. It allows users to generate various types of charts, including bar, line, and area charts, and supports overlaying multiple chart types in a single visualization. The module facilitates the organization of data into structured arrays, enabling the comparison of related datasets while maintaining consistent formatting. Users can customize chart attributes such as axis labels, colors, and dimensions, making it a versatile tool for presenting data visually in PDF format. With its straightforward methods for adding data and drawing charts, `PDF::Reuse::OverlayChart` is ideal for developers looking to enhance their reports and presentations with graphical data representations.
Perl logo

PDF-Reuse-Barcode

Release | 22 Jan 2026 09:47 PM | Author: CNIGHS | Version: 0.09
Upvotes: 1 | CPAN Testers: Pass 100.0%
Create barcodes for PDF documents with PDF::Reuse
The PDF::Reuse::Barcode module is a powerful Perl sub-module designed for generating various types of barcodes within PDF documents using the PDF::Reuse framework. It leverages the capabilities of GD::Barcode and its associated sub-modules to create barcode images, including popular formats such as Code39, EAN13, QR codes, and more. Users can customize the appearance of the barcodes by adjusting parameters such as size, position, background color, and text display options. This module is particularly useful for developers needing to incorporate barcode functionality into their PDF generation workflows, allowing for easy integration and manipulation of barcode images to meet specific requirements.
Perl logo

Mooish-Base

Favorite | 22 Jan 2026 09:15 PM | Author: BRTASTIC | Version: 1.003
Upvotes: 1 | CPAN Testers: Pass 100.0%
Importer for Mooish classes
Mooish::Base is a Perl module designed to simplify the creation of classes and roles within the Moo and Moose object-oriented programming frameworks. By using Mooish::Base, developers can easily import essential components such as Moo, Mooish::AttributeBuilder, and Types::Common, while also allowing for customization through environmental variables that dictate the specific flavors of class and role systems to be used. This module streamlines the process of building object-oriented structures, ensuring compatibility with various Moose family modules, and offers optional performance enhancements through additional modules if desired. It also includes debugging capabilities to help developers track the loaded classes and roles, making it a valuable tool for Perl developers looking to leverage the power of Moo and Moose in their applications.
Perl logo

Future-Batch

Release | 22 Jan 2026 08:40 PM | Author: LNATION | Version: 0.02
CPAN Testers: Pass 100.0%
Process multiple Future-returning operations with concurrency control
Future::Batch is a Perl module designed to facilitate the processing of multiple Future-returning operations while maintaining control over concurrency. It allows users to specify the maximum number of simultaneous operations, making it ideal for scenarios such as fetching multiple URLs, processing files, or managing rate-limited API calls. The module provides both a functional interface and an object-oriented approach, enabling users to easily execute batch operations and track progress through callbacks. With its ability to return results in the same order as the input items, Future::Batch balances throughput with resource usage effectively. Notably, the recent version 0.02 enhances the module's capabilities, ensuring robust error handling and improved usability for developers.
Perl logo

Acme-ExtUtils-XSOne-Test-Calculator

Release | 22 Jan 2026 07:46 PM | Author: LNATION | Version: 0.01
CPAN Testers: Pass 95.8%Fail 4.2%
A scientific calculator demonstrating ExtUtils::XSOne
Acme::ExtUtils::XSOne::Test::Calculator is a demonstration Perl module that showcases the capabilities of ExtUtils::XSOne by providing a comprehensive scientific calculator with multi-file XS support. It allows users to perform basic arithmetic operations, scientific calculations, and trigonometric functions through various submodules, all of which share a common C-level state. This shared state enables features such as memory storage and retrieval across submodules, as well as a unified history of calculations. With functions like `add`, `power`, and `sin_val`, users can easily import and utilize the desired functionalities, making it a versatile tool for mathematical computations. The module is currently at version 0.01, marking its initial release.
Perl logo

Geo-IPinfo

Release | 22 Jan 2026 04:21 PM | Author: IPINFO | Version: v3.3.0
Upvotes: 2 | CPAN Testers: Pass 99.0%Fail 1.0%
The official Perl library for IPinfo
Geo::IPinfo is the official Perl library for accessing IPinfo's extensive IP address data, providing reliable geolocation, company, carrier, and IP type information. With version 3.2.0, users can create an IPinfo object using an access token to bypass the default request limit, and retrieve detailed information about both IPv4 and IPv6 addresses through methods like `info()` and `info_v6()`. The module also supports caching and allows for specific field retrieval with the `field()` method. Notably, the recent update introduced support for the Core and Plus APIs, enhancing the module's functionality for developers needing more comprehensive IP data solutions.
Perl logo

EV

Release | 22 Jan 2026 03:12 PM | Author: MLEHMANN | Version: 4.37
Upvotes: 50 | CPAN Testers: Pass 97.4%Unknown 2.6%
Perl interface to libev, a high performance full-featured event loop
The EV module provides a Perl interface to the libev event loop, enabling high-performance event-driven programming. It allows developers to create and manage various types of watchers, including timers, I/O events, signals, child process status changes, and file status changes, all while maintaining scalability and speed. With a straightforward API, users can easily set up callbacks for specific events, manage the event loop, and handle multiple event types efficiently. The module supports both a default event loop and the creation of dynamic loops, making it versatile for different application needs. For those requiring basic event handling without the advanced features of EV, the AnyEvent module is recommended for its portability across different event loops.
Perl logo

Parse-RPN

Release | 22 Jan 2026 03:00 PM | Author: FDULAU | Version: 2.88
Upvotes: 3 | CPAN Testers: Pass 40.9%Fail 59.1%
Parse::RPN Is a minimalist RPN parser/processor (a little like FORTH)
The `Parse::RPN` Perl module provides a minimalist parser and processor for Reverse Polish Notation (RPN), allowing users to perform calculations and manipulate data using a stack-based approach similar to that of FORTH. With its straightforward syntax, users can input RPN expressions as comma-separated strings, and the module evaluates these expressions to return results or the current state of the stack. It supports a wide range of mathematical, relational, and logical operators, as well as string manipulation functions, making it versatile for various computational tasks. Recent updates have improved the module's functionality, including fixes for self-tests and enhancements to its command-line interface, ensuring better usability and reliability. This module is particularly useful for applications requiring dynamic calculations or configuration management, where users can define and maintain complex expressions easily.
Perl logo

WebDyne

Release | 22 Jan 2026 01:14 PM | Author: ASPEER | Version: 2.075
Upvotes: 1 | CPAN Testers: Pass 92.4%Fail 7.6%
Dynamic Perl web application framework with template compilation and modular design. Designed to be used via Plack/Starman/PSGI or Apache mod_perl web servers, but supports standalone HTML output
WebDyne is a dynamic web application framework for Perl that facilitates the creation of high-performance web applications through template compilation and a modular design. It is compatible with various web servers, including Plack, Starman, and Apache mod_perl, while also supporting standalone HTML output. The framework allows developers to integrate Perl code within HTML files using .psp templates, which can be rendered to HTML strings or scalar references via the core functions `html` and `html_sr`. With features like caching, block rendering, and custom handlers, WebDyne offers flexibility and efficiency for both CGI and persistent environments. Comprehensive documentation is available for users looking to leverage its capabilities in web development.
Perl logo

Venus

Favorite | 22 Jan 2026 12:10 PM | Author: AWNCORP | Version: 5.01
Upvotes: 8 | CPAN Testers: Pass 93.1%Fail 3.5%N/A 3.5%
Standard Library for Perl 5
The Venus module is a comprehensive standard library for Perl 5, designed to enhance object-oriented programming and provide a robust framework for handling various data types and operations. With features such as advanced exception handling, pure-Perl autoboxing, and a rich set of utility classes, Venus simplifies tasks like package introspection, command-line options parsing, and error management. It includes built-in functions for boolean operations, type assertions, and type coercions, making it a versatile tool for developers. Notably, version 5.00 introduced several significant enhancements, including the implementation of built-in commands for vns, the addition of new classes like Venus::Set and Venus::Map, and improvements to error handling and configuration management, ensuring that Venus remains a powerful and flexible library for modern Perl applications.
Perl logo

Mail-Message

Release | 22 Jan 2026 08:22 AM | Author: MARKOV | Version: 4.02
Upvotes: 2 | CPAN Testers: Pass 34.7%Fail 61.2%N/A 4.1%
Processing MIME messages
The `Mail::Message` Perl module serves as a comprehensive object-oriented representation of MIME-encoded email messages, adhering to the standards set by RFC2822. It encapsulates both the header and body of an email, allowing developers to easily access and manipulate various components such as the subject, sender, recipients, and message content. The module provides a rich set of methods for constructing, sending, and processing messages, including functionalities for replying, forwarding, and bouncing emails. Additionally, it supports complex message handling through extensions that facilitate operations like reading and rebuilding messages. With its robust architecture, `Mail::Message` is an essential tool for any Perl developer working with email processing and management.
Perl logo

Class-XSConstructor

Favorite | 22 Jan 2026 07:01 AM | Author: TOBYINK | Version: 0.023000
Upvotes: 5 | CPAN Testers: Pass 90.0%Fail 2.7%Unknown 7.3%
A super-fast constructor in XS
Class::XSConstructor is a Perl module designed to create high-performance object constructors using XS (eXternal Subroutine) for enhanced speed. It extends the capabilities of Class::XSAccessor by supporting advanced features similar to those found in Moose, such as initialization from hash references, required attributes, defaults, builders, type constraints, and type coercions. The module allows for strict parameter checking, custom slot initializers, and various attribute options like weak references and triggers. Recent updates have improved compatibility with parent constructors and introduced a new option for undef-tolerant attributes, enhancing its flexibility and usability. This module is ideal for developers seeking efficient and feature-rich constructors for their Perl classes.
Perl logo

Net-Server

Release | 22 Jan 2026 06:48 AM | Author: BBB | Version: 2.015
Upvotes: 33 | CPAN Testers: Pass 76.4%Fail 23.6%
Extensible Perl internet server
The `Net::Server` Perl module is a versatile and extensible server engine designed to facilitate the creation of various types of servers, including single connection, forking, and preforking servers, as well as support for multiplexing and inetd-style servers. It provides comprehensive features such as full IPv6 support, SSL socket handling, customizable logging, and safe signal management, making it suitable for a wide range of applications from simple echo servers to complex HTTP daemons. The module allows developers to easily define server behavior through subclassing and provides hooks for customization at various stages of the server lifecycle. Notably, recent updates have improved compatibility with various Perl modules and enhanced functionality, including fixes for issues related to UDP handling and reverse lookups, ensuring robust performance across different environments.
Perl logo

ExtUtils-XSOne

Release | 22 Jan 2026 06:30 AM | Author: LNATION | Version: 0.01
CPAN Testers: Pass 70.6%Fail 29.4%
Combine multiple XS files into a single shared library
ExtUtils::XSOne is a Perl module designed to streamline the process of combining multiple XS (eXternal Subroutine) files into a single shared library, addressing the limitations of Perl's XSMULTI feature. By allowing developers to organize their XS code into multiple files while still enabling shared access to C static variables and internal state, this module enhances maintainability and modularity. It provides a straightforward interface for combining XS files, either programmatically through a Makefile or via a command-line tool, ensuring that all components are compiled into one cohesive library. This is particularly beneficial for projects that require shared C state among modules, making ExtUtils::XSOne an essential tool for developers looking to optimize their XS code structure. The initial release marks the module's introduction to the Perl ecosystem, setting the stage for future enhancements.
Perl logo

Affix

Release | 22 Jan 2026 04:03 AM | Author: SANKO | Version: v1.0.6
Upvotes: 4 | CPAN Testers: Pass 100.0%
A Foreign Function Interface eXtension
Affix is a high-performance Foreign Function Interface (FFI) for Perl that enables seamless interaction with dynamic libraries (DLLs and shared objects) without the need for XS code or C compiler configuration. By utilizing a custom lightweight Just-In-Time (JIT) engine, Affix generates efficient machine code at runtime for function calls, significantly reducing overhead compared to traditional FFI solutions. The module provides a straightforward API for loading libraries, binding functions, managing memory, and handling complex data types, including structs and arrays. With features like automatic argument marshalling, memory management utilities, and support for callbacks, Affix empowers Perl developers to leverage native C libraries with ease and efficiency, making it an ideal choice for performance-critical applications.
Perl logo

Authen-SASL-XS

Release | 22 Jan 2026 01:48 AM | Author: TIMLEGGE | Version: 1.02
CPAN Testers: Pass 50.0%Fail 40.0%N/A 5.0%Unknown 5.0%
XS code to glue Perl SASL to Cyrus SASL
Authen::SASL::XS is a Perl module that provides an interface for integrating Perl's SASL (Simple Authentication and Security Layer) capabilities with the Cyrus SASL library through XS (eXternal Subroutine) code. This module facilitates the implementation of various authentication mechanisms used in network protocols by allowing developers to create SASL client and server contexts. It supports a range of callback types for handling user credentials and other authentication-related data, enabling seamless interaction with Perl variables and subroutines. By leveraging the underlying Cyrus SASL library, Authen::SASL::XS simplifies the process of establishing secure connections, making it an essential tool for developers looking to implement robust authentication in their applications.
Perl logo

Gherkin

Release | 22 Jan 2026 12:50 AM | Author: CUKEBOT | Version: 38.0.0
Upvotes: 2 | CPAN Testers: Pass 98.9%N/A 1.1%
A parser and compiler for the Gherkin language
The Gherkin Perl module serves as a parser and compiler for the Gherkin language, which is integral to the Cucumber testing framework. This module allows developers to read and process Gherkin feature files, generating a stream of messages that can be utilized in automated testing pipelines. By leveraging the official Gherkin grammar, it produces structured outputs such as Abstract Syntax Trees (AST) and executable scenarios (Pickles), which can be directed to a user-defined sink for further processing. With options to include source text and AST in the output, Gherkin facilitates seamless integration into testing workflows, making it a valuable tool for developers looking to implement behavior-driven development (BDD) practices in Perl.
Perl logo

OpenAPI-Modern

Release | 21 Jan 2026 10:55 PM | Author: ETHER | Version: 0.123
Upvotes: 4 | CPAN Testers: Pass 100.0%
Validate HTTP requests and responses against an OpenAPI v3.0, v3.1 or v3.2 document
OpenAPI::Modern is a Perl module designed to validate HTTP requests and responses against OpenAPI v3.0, v3.1, or v3.2 specifications. It provides a robust framework for ensuring that your API interactions conform to defined schemas, leveraging a fully compliant JSON Schema evaluator. The module allows developers to create an OpenAPI object with a specified URI and schema, and offers methods to validate requests and responses, returning detailed results that highlight any discrepancies. Notably, in version 0.121, the module has improved type coercion for parameter data, enhancing compliance with the OpenAPI specification by inferring intended types for various data structures. This makes OpenAPI::Modern an essential tool for developers looking to maintain high standards of API integrity and compliance.
Perl logo

Test-JSON-Schema-Acceptance

Release | 21 Jan 2026 10:50 PM | Author: ETHER | Version: 1.037
Upvotes: 1 | CPAN Testers: Pass 100.0%
Acceptance testing for JSON-Schema based validators
The `Test::JSON::Schema::Acceptance` Perl module facilitates acceptance testing for JSON Schema validators by allowing developers to run the official JSON Schema Test Suite directly within Perl. This module is particularly useful for ensuring compliance with various drafts of the JSON Schema specification, providing a standardized way to verify interoperability with other implementations across different programming languages. By utilizing this module, developers can easily integrate comprehensive testing into their JSON Schema libraries, such as `JSON::Schema::Modern`, without the need for manual test conversion. Notably, in the recent version 1.037, enhancements were made to improve diagnostic output for failed tests by including the type of the data being tested, which aids in debugging and validation processes.
Perl logo

Test-Pod

Favorite | 21 Jan 2026 09:49 PM | Author: ETHER | Version: 1.52
Upvotes: 23 | CPAN Testers: Pass 100.0%
Check for POD errors in files
The Test::Pod module is a Perl testing utility designed to validate Plain Old Documentation (POD) files for errors and warnings, ensuring that documentation adheres to expected standards. By leveraging the capabilities of Pod::Simple, it allows module authors to easily incorporate POD validation into their testing routines. Users can check individual POD files with the `pod_file_ok()` function or automatically validate all POD files within a module distribution using `all_pod_files_ok()`, which scans specified directories for valid POD files. This module is particularly useful for maintaining high-quality documentation in Perl projects, as it provides clear diagnostics for any issues encountered during the validation process.
Perl logo

App-CPANTS-Lint

Favorite | 21 Jan 2026 09:48 PM | Author: ISHIGAKI | Version: 0.05
Upvotes: 1 | CPAN Testers: Pass 100.0%
Front-end to Module::CPANTS::Analyse
App::CPANTS::Lint is a Perl module designed to serve as a front-end for Module::CPANTS::Analyse, enabling developers to assess the Kwalitee of their Perl distributions. By utilizing this module, users can easily analyze a distribution tarball and receive detailed reports on its quality metrics, including a Kwalitee score. The module offers various configuration options, such as verbosity, core-only checks, and the ability to include experimental metrics, allowing for tailored analysis. Recent updates have introduced the metrics_path option, enabling the use of additional metrics modules, enhancing the module's flexibility and functionality. This makes App::CPANTS::Lint an essential tool for Perl developers aiming to maintain high-quality code standards.
Perl logo

Test-Kwalitee

Favorite | 21 Jan 2026 09:48 PM | Author: ETHER | Version: 1.28
Upvotes: 8 | CPAN Testers: Pass 100.0%
Test the Kwalitee of a distribution before you release it
Test::Kwalitee is a Perl module designed to evaluate the Kwalitee of a software distribution prior to its release, ensuring that it meets certain quality metrics as defined by the CPANTS project. By incorporating a simple test file, developers can automatically run a series of checks that assess various aspects of their distribution, such as the presence of essential files (like README and LICENSE), adherence to coding standards (like using strict), and compliance with metadata specifications. This module helps developers identify potential issues early in the release process, ultimately enhancing the overall quality of their software. It is particularly useful for those preparing to publish their work on CPAN or within their organization, as it provides actionable feedback on how to improve their distribution's Kwalitee.
Perl logo

CPAN-Changes

Favorite | 21 Jan 2026 09:47 PM | Author: HAARG | Version: 0.500005
Upvotes: 33 | CPAN Testers: Pass 100.0%
Parser for CPAN style change logs
The CPAN::Changes module is designed to facilitate the parsing and management of CPAN-style change logs, which are essential for tracking modifications between software releases. By providing a structured way to read and write Changes files, this module adheres to a preliminary specification aimed at promoting clarity and consistency among module authors. Users can create CPAN::Changes objects, load change logs from files or strings, and manipulate release entries through various methods, including adding, deleting, and finding specific releases. Additionally, the module offers serialization options for saving changes in a standardized format, making it an invaluable tool for developers looking to maintain clear documentation of their project's evolution.
Perl logo

Test-Pod-Coverage

Favorite | 21 Jan 2026 09:46 PM | Author: NEILB | Version: 1.10
Upvotes: 24 | CPAN Testers: Pass 100.0%
Check for pod coverage in your distribution
Test::Pod::Coverage is a Perl module designed to ensure that all relevant files in a distribution are adequately documented using Plain Old Documentation (POD). By integrating this module into your test suite, you can verify that your modules meet documentation standards, helping to maintain code quality and usability. It provides functions such as `pod_coverage_ok` for checking individual modules and `all_pod_coverage_ok` for assessing all modules within a distribution. Recent updates in version 1.10 include a change in licensing to Artistic 2.0, improvements to the module's structure, and enhancements to its testing capabilities, ensuring better compliance with modern Perl practices. This module is particularly useful for developers looking to enforce documentation standards without making Test::Pod::Coverage a mandatory installation requirement.
Perl logo

Cucumber-Messages

Release | 21 Jan 2026 06:51 PM | Author: CUKEBOT | Version: 32.0.0
CPAN Testers: Pass 100.0%
A library for (de)serializing Cucumber protocol messages
The `Cucumber::Messages` Perl module serves as a comprehensive library for encapsulating and managing messages within the Cucumber testing framework. It facilitates the serialization and deserialization of messages to and from NDJSON format, enabling seamless communication between various components of the Cucumber ecosystem. The module provides a rich set of classes that represent different types of messages, such as `Envelope`, `Attachment`, `TestCase`, and `Step`, among others, allowing developers to easily create, manipulate, and interpret these messages in their Perl applications. Notably, version 32.0.0 introduced the `ExternalAttachment` class for handling large attachments stored externally, while deprecating the previous `Attachment.url` and `Attachment.source` attributes, enhancing the module's efficiency and usability.
Perl logo

Beam-Wire

Release | 21 Jan 2026 06:32 PM | Author: PREACTION | Version: 1.028
Upvotes: 19 | CPAN Testers: Pass 56.6%Fail 43.4%
Lightweight Dependency Injection Container
Beam::Wire is a lightweight dependency injection container for Perl that simplifies the management of object creation and dependencies within applications. By utilizing a YAML configuration file, developers can define services and their relationships, allowing the container to automatically instantiate and manage these objects as needed. This approach promotes an inversion of control, enhancing flexibility and maintainability in code. Recent updates in version 1.028 include a fix for a confusing error message related to missing inner container files, improving the user experience when configuring services. With its ability to handle complex data structures and provide runtime configuration overrides, Beam::Wire is an essential tool for developers looking to streamline their Perl applications.
Perl logo

Suffit

Release | 21 Jan 2026 05:16 PM | Author: ABALAMA | Version: 1.01
CPAN Testers: Pass 94.0%N/A 6.0%
Suffit Library Bundle
Suffit is a Perl library bundle designed to streamline the development process by integrating multiple complementary libraries into a single, cohesive package. This modular approach facilitates scalable and efficient application development, making it particularly useful for developers looking to build robust web applications with ease. The module is exemplified in the provided usage snippet, where it serves as a foundation for a simple web application using the Mojolicious framework. Notably, in the recent update to version 1.01, the project was relicensed from the Perl 5 dual license to the Artistic License 2.0, enhancing its accessibility and compliance with open-source standards.
Perl logo

Mojolicious-Plugin-ConfigGeneral

Release | 21 Jan 2026 05:09 PM | Author: ABALAMA | Version: 1.05
CPAN Testers: Pass 98.6%N/A 1.4%
Config::General Configuration Plugin for Mojolicious
Mojolicious::Plugin::ConfigGeneral is a powerful configuration plugin for the Mojolicious web framework that utilizes the Config::General module to manage application settings. It allows developers to easily load configuration files, set default values, and customize options directly within their Mojolicious applications. With features such as path-pointer access to configuration parameters and the ability to specify configuration files either relative to the application home or via environment variables, this plugin streamlines the configuration process. Notably, in version 1.05, the project was relicensed to the Artistic License 2.0, enhancing its accessibility and compliance with open-source standards.