Recent Perl modules, releases and favorites.
Last updated 24 January 2026 04:30 AM
Last updated 24 January 2026 04:30 AM
Export-These
Release | 24 Jan 2026 02:51 AM | Author: DRCLAW | Version: v0.2.2
Terse Module Configuration and Symbol (Re)Exporting
The `Export::These` Perl module streamlines the process of exporting and re-exporting symbols from packages, making it less verbose and more powerful. It allows module authors to easily manage symbol exports while also enabling the passing of configuration data during import. Unlike traditional methods that rely on the `Exporter` module, `Export::These` injects its own import subroutine, which facilitates the export of symbols and supports hooks for pre- and post-processing of imports. Recent updates in version 0.2.2 include fixes for spelling errors and improvements to the handling of symbol imports, while version 0.2.1 introduced the ability to prevent default symbol imports when using reference values, enhancing the module's flexibility. This makes `Export::These` an excellent choice for developers looking to simplify their module's export logic and configuration management.
Data-Text
Release | 24 Jan 2026 01:54 AM | Author: NHORNE | Version: 0.19
Upvotes: 1 | CPAN Testers: Pass 100.0%
Class to handle text in an OO way
Data::Text is a Perl module that offers an object-oriented approach to managing and manipulating text content. It encapsulates string operations within a class structure, allowing for method chaining to perform tasks such as appending, trimming, and replacing words, as well as joining text with conjunctions. The module supports various input types, including strings, arrays, and other Data::Text objects, and it overloads common operators for intuitive comparisons and stringification. With methods for converting text case, clearing content, and checking equality, Data::Text simplifies text handling in Perl applications while providing a clean and flexible interface.
SQL-Beautify
Release | 23 Jan 2026 09:02 PM | Author: SKOV | Version: 0.05
Upvotes: 4 | CPAN Testers: Pass 100.0%
Beautify SQL statements by adding line breaks indentation
SQL::Beautify is a Perl module designed to enhance the readability of SQL statements by adding line breaks and indentation. It allows users to create a new instance with customizable options such as the number of spaces for indentation, line break characters, and the ability to wrap specific SQL keywords or constants with markup for better visibility. The module provides methods to set and append SQL queries, beautify the SQL string, and even add custom formatting rules for specific tokens. Notably, recent updates have introduced support for user-defined keywords and custom rules, along with a command-line script for ease of use, making it a versatile tool for developers looking to improve the presentation of their SQL code.
SQL-Tokenizer
Release | 23 Jan 2026 09:00 PM | Author: SKOV | Version: 0.25
Upvotes: 3 | CPAN Testers: Pass 100.0%
A simple SQL tokenizer
SQL::Tokenizer is a Perl module designed to tokenize SQL queries into manageable components, making it easier to analyze and manipulate SQL statements. It provides a straightforward interface with two primary methods: `tokenize` as a class method and `tokenize_sql` as a procedural function, both of which return an array of tokens or an array reference depending on the context. The module effectively handles various SQL constructs, including comments, quoted strings, and escape sequences, ensuring that tokens are generated accurately from valid SQL queries. Notably, the recent version 0.24 introduced significant improvements in memory usage for quote handling, enhancing the module's efficiency. This makes SQL::Tokenizer a valuable tool for developers working with SQL in Perl, simplifying the process of breaking down complex queries into their constituent parts.
DBIx-QuickDB
Release | 23 Jan 2026 08:07 PM | Author: EXODIST | Version: 0.000039
Quickly start a db server
DBIx::QuickDB is a Perl module designed to facilitate the rapid setup of temporary database servers for various database drivers, including PostgreSQL, MySQL, and SQLite. It allows developers to create and manage databases either at compile-time with constants or at run-time by storing them in variables. The module provides a straightforward interface for building databases with customizable specifications, including options for automatic startup and cleanup, as well as the ability to load SQL files. With its ability to quickly spin up a database server, DBIx::QuickDB is particularly useful for testing and development environments where a lightweight and ephemeral database solution is needed.
Keyword-Anonymous-Object
Release | 23 Jan 2026 07:48 PM | Author: LNATION | Version: 1.01
CPAN Testers: Pass 100.0%
Anonymous objects
The `Keyword::Anonymous::Object` Perl module provides a convenient way to create anonymous objects using a simple syntax. By importing the `object` keyword, developers can define a scalar variable that references either an array or hash, allowing for easy encapsulation of data and methods. This module supports various functionalities such as accessing, modifying, and clearing properties of the object, making it ideal for scenarios where lightweight, temporary objects are needed without the overhead of defining a full class. With its straightforward approach, `Keyword::Anonymous::Object` enhances code readability and maintainability in Perl applications.
The AT Protocol for Social Networking
The At module is a comprehensive toolkit designed for interacting with the AT Protocol, which underpins decentralized social networks like Bluesky. It facilitates user authentication through modern OAuth methods, allowing developers to create and manage user sessions securely. With features such as posting content, managing accounts, and streaming real-time events via the Firehose, At provides a robust interface for building applications that leverage decentralized social networking capabilities. Recent updates have introduced a dedicated Firehose client for enhanced real-time event streaming and improved session management, making it easier for developers to stay connected with network activities.
Object ฅ^•ﻌ•^ฅ Orientation
Meow is an experimental Perl module designed to provide a fast and minimalist object-oriented system using XS, enabling developers to define read-write and read-only attributes with various specifications such as type, default values, coercion, triggers, and builders. It supports multiple inheritance through the "extends" keyword and offers a Perl-style constructor for object creation. As of version 0.17, Meow has achieved notable performance improvements, surpassing both Moo and Moose in speed, although it is suggested that users consider Marlin for optimal performance. This module is ideal for those looking for a lightweight and efficient object system in Perl.
Marlin-Antlers
Release | 23 Jan 2026 05:39 PM | Author: TOBYINK | Version: 0.003001
A more Moose-like syntax for Marlin
Marlin::Antlers is a Perl module that offers a more Moose-like syntax for the Marlin object system, making it easier to define classes and manage attributes with a concise and intuitive approach. It introduces keywords such as "has" for attribute declaration, "extends" for inheritance, and "with" for role composition, while also providing built-in support for type constraints and method modifiers. This module enhances the developer experience by exporting common types and utilities, enabling modern Perl features, and ensuring strictness and warnings by default. Notably, recent updates have improved compatibility with newer versions of Marlin and introduced custom versions of the `signature_for` and `signature` functions, further streamlining method signature definitions.
Lexical-Accessor
Release | 23 Jan 2026 05:21 PM | Author: TOBYINK | Version: 1.001000
Upvotes: 5 | CPAN Testers: Pass 100.0%
True private attributes for Moose/Moo/Mouse
Lexical::Accessor is a Perl module designed to provide true private attributes for Moose, Moo, and Mouse object systems, allowing developers to create encapsulated attributes that are completely hidden from outside code, including subclasses. By using the `lexical_has` function, developers can define private attributes that do not clutter the class's namespace, ensuring that even attributes with the same name in subclasses remain unaffected. This module supports various options for attribute configuration, such as read/write accessors, type constraints, and lazy defaults, while also enabling chainable accessors for more fluent interface design. A noteworthy recent change in version 1.001000 includes the addition of support for chainable accessors, writers, and clearers, enhancing the module's usability and flexibility.
B-Hooks-AtRuntime-OnlyCoreDependencies
Release | 23 Jan 2026 05:19 PM | Author: TOBYINK | Version: 8.000001
CPAN Testers: Pass 100.0%
It is just B::Hooks::AtRuntime but with only core dependencies
B::Hooks::AtRuntime::OnlyCoreDependencies is a streamlined version of the B::Hooks::AtRuntime module, designed specifically to eliminate dependencies on external modules such as Sub::Name, Module::Build, and Test::Exports. This module is ideal for users who require the functionality of B::Hooks::AtRuntime but prefer a lighter dependency footprint. Authored by Toby Inkster, with most of the code derived from Ben Morrow's original work, this module maintains the same licensing terms as its predecessor. The initial release was made on January 23, 2026, marking its entry into the Perl ecosystem.
AnyEvent-I3X-Workspace-OnDemand
Release | 23 Jan 2026 04:49 PM | Author: WATERKIP | Version: 0.006
CPAN Testers: Pass 100.0%
An I3 workspace loader
AnyEvent::I3X::Workspace::OnDemand is a Perl module designed to facilitate dynamic workspace management in the i3 window manager. It allows users to define and load workspace layouts on demand, responding to custom tick events that correspond to workspace groups. By configuring workspace layouts and associated commands, users can easily switch between different workspace setups, manage application behavior based on workspace context, and streamline their workflow. The module supports advanced features such as event subscriptions and command execution, making it a powerful tool for users looking to enhance their i3 experience with automated workspace management.
Getopt-Type-Tiny
Release | 23 Jan 2026 02:32 PM | Author: OVID | Version: 0.02
Clean Getopt::Long wrapper with Type::Tiny support
Getopt::Type::Tiny is a Perl module that serves as a streamlined wrapper around Getopt::Long, enhancing it with Type::Tiny support for type constraints. This module simplifies the process of parsing command line options by allowing developers to specify types for each option, such as strings and integers, while also providing default values and support for multi-value options like arrays and hashes. With its clean syntax, Getopt::Type::Tiny enables easy integration of type checks into command line applications, ensuring that options are validated against defined constraints, thus improving robustness and usability. Additionally, it automatically includes help options for user guidance, making it a practical choice for developers looking to enhance their command line interfaces.
Net-Clacks
Release | 23 Jan 2026 12:07 PM | Author: CAVAC | Version: 35
Fast client/server interprocess messaging and memcached replacement
Net::Clacks is a Perl module designed for efficient interprocess messaging and serves as a replacement for memcached, enabling fast client/server communication. It supports a master/slave server configuration, allowing for scalability by running multiple servers and creating a tree-like structure for handling numerous clients. The module offers two primary functionalities: real-time messaging and in-memory data storage. Additionally, it includes a DEBUG feature for message forwarding to clients and provides various components, such as Net::Clacks::Server for server implementation and Net::Clacks::Client for client interactions. With its ability to integrate with PostgreSQL for message generation via database triggers, Net::Clacks is a versatile solution for developers seeking robust messaging capabilities in their applications.
A Sort-Tile-Recursive tree index
Tree::STR is a Perl module designed for creating a Sort-Tile-Recursive (STR) tree index, which serves as a read-only R-Tree that offers improved efficiency in construction compared to traditional R-Trees. It allows users to store spatial data in the form of bounding boxes, represented as arrays of coordinates followed by associated items. The module provides methods for querying the tree, enabling users to find items that intersect with a specific point or are partially or completely within a defined rectangle. The recent update to version 0.02 addressed significant bugs found in the initial release and introduced additional tests to enhance reliability. This module is particularly useful for applications involving spatial data management and querying.
SPVM
Release | 23 Jan 2026 03:38 AM | Author: KIMOTO | Version: 0.990115
Upvotes: 36 | CPAN Testers: Pass 100.0%
The SPVM Language
SPVM is a statically typed programming language that features a Perl-like syntax, designed for high performance and ease of use. It allows developers to execute SPVM programs directly, generate executable files, and call SPVM methods from Perl, making it versatile for various programming tasks. With support for native threads, type inference, and both ahead-of-time and just-in-time compilation, SPVM combines the familiarity of Perl with the efficiency of compiled languages. Although still in development and lacking a stable release, SPVM offers a range of features including standard Perl functions, C/C++ bindings, and a comprehensive set of documentation and tutorials to assist users in leveraging its capabilities effectively.
App-Greple-xlate
Release | 23 Jan 2026 01:54 AM | Author: UTASHIRO | Version: 1.00
Translation support module for greple
The App::Greple::xlate module provides translation support for the greple command-line tool, enabling users to find and replace text blocks in Perl's POD format with translations from various engines, including DeepL and OpenAI's GPT-4 and GPT-5. This module allows for flexible translation options, such as specifying patterns for text selection, output formats compatible with version control systems, and the ability to mask certain text from translation. Recent updates include the introduction of the GPT-5 engine, enhancing the module's capabilities for generating high-quality translations. With its robust caching system and support for Docker environments, App::Greple::xlate is designed for efficient and effective text translation workflows.
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.
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.
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.
Business-US-USPS-IMB
Release | 22 Jan 2026 09:47 PM | Author: CNIGHS | Version: 0.04
CPAN Testers: Pass 100.0%
Perl Binding for usps4cb
The Business::US::USPS::IMB Perl module serves as a binding for the usps4cb library, enabling users to encode Intelligent Mail Barcodes (IMB) for tracking purposes. By utilizing the `encode_IMB` function, developers can input a tracking number and a routing number to receive a properly formatted barcode string along with a result code indicating the success or failure of the encoding process. While this module facilitates the generation of the encoding string, it does not produce the actual barcode image, which requires specific fonts to render. This module is particularly useful for applications that need to integrate USPS tracking capabilities while adhering to the Intelligent Mail Barcode specifications.
Reuse and mass produce PDF documents
PDF::Reuse is a Perl module designed for the efficient creation and manipulation of PDF documents, particularly useful for mass-producing similar documents from templates. It allows users to define output files, add text, images, and JavaScript, and manage complex layouts with ease. The module supports PDF-1.4 files and offers experimental features for PDF-1.5, enabling the reuse of templates and components while maintaining high performance for generating large documents quickly. Recent updates have improved compatibility and fixed bugs, including a significant fix in version 0.43 that resolved crashes related to font handling, enhancing the stability of the module for developers. With its extensive functionality, PDF::Reuse is ideal for developers looking to automate PDF generation in their applications.
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.
CPAN-Meta-Requirements
Release | 22 Jan 2026 09:12 PM | Author: RJBS | Version: 2.144
Upvotes: 4 | CPAN Testers: Pass 100.0%
A set of version requirements for a CPAN dist
The CPAN::Meta::Requirements module provides a robust framework for managing version requirements of Perl modules in CPAN distributions, as specified in META.yml or META.json files. It allows developers to define minimum, maximum, and exclusion constraints for module versions, ensuring that dependencies are clearly articulated and conflicts are easily identified. With methods for adding requirements, checking acceptance of specific versions, and generating a simplified string representation of the requirements, this module streamlines the process of dependency management in Perl applications. Notably, version 2.144 introduced the removal of legacy code for compatibility with older Perl versions, reflecting a commitment to modernizing the module while also normalizing compound version requirements for clarity.
The distribution metadata for a CPAN dist
The CPAN::Meta module provides a structured way to handle distribution metadata for Perl modules published on CPAN, utilizing either META.json or the older META.yml format. It allows developers to load, validate, and manipulate metadata, including dependencies and features, through a variety of methods such as `load_file`, `effective_prereqs`, and `save`. This module is essential for ensuring that Perl distributions are correctly described and that their dependencies are properly managed. Notably, in the recent version 2.150011, the module's documentation was improved with a clearer example for testing minimum prerequisite versions of modules, enhancing usability for developers.
Future-Batch-XS
Release | 22 Jan 2026 08:40 PM | Author: LNATION | Version: 0.03
XS implementation of batch processing for Future operations
Future::Batch::XS is a Perl module that provides an efficient way to perform batch processing of multiple items using a worker function that returns Future objects, with controlled concurrency. This XS implementation enhances the performance of the original Future::Batch module by executing the batch processing loop in C/XS, allowing for faster handling of Future callbacks. Users can process items such as fetching URLs or making API calls while specifying a maximum number of concurrent operations, and can choose between a functional or object-oriented interface. The module also supports progress tracking and can integrate with event loops for non-blocking execution, making it ideal for scenarios where resource management and throughput balance are crucial.
Future-Batch
Release | 22 Jan 2026 08:40 PM | Author: LNATION | Version: 0.02
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.
Acme-ExtUtils-XSOne-Test-Calculator
Release | 22 Jan 2026 07:46 PM | Author: LNATION | Version: 0.01
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.
Geo-IPinfo
Release | 22 Jan 2026 04:21 PM | Author: IPINFO | Version: v3.3.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.