Recent Perl modules, releases and favorites.
Last updated 4 February 2026 12:30 PM
Last updated 4 February 2026 12:30 PM
Graphics-Penplotter-GcodeXY
Release | 4 Feb 2026 11:10 AM | Author: NAMK | Version: v0.6.3
Produce gcode files for pen plotters from Perl
The Graphics::Penplotters::GcodeXY Perl module is designed for generating G-code files specifically for pen plotters, allowing users to create intricate designs using simple Perl commands. With support for various graphics primitives such as lines, boxes, polygons, and arcs, users can easily define shapes and output them in G-code format. The module accommodates different paper sizes and units (inches, millimeters, etc.), and includes features for importing SVG files and exporting to both SVG and Postscript formats. Recent updates in version 0.6.3 have addressed bugs related to the ellipse function and improved the handling of output formatting, enhancing the overall functionality and reliability of the module.
System Calls for File IO, Sockets, Time, Process, Signals, Users
The `SPVM::Sys` module provides a comprehensive interface for system calls related to file I/O, sockets, time management, process control, signal handling, and user management in the SPVM (Simple Perl Virtual Machine) environment. It allows developers to perform operations such as opening files, creating directories, managing sockets, and handling processes with a straightforward API. Notably, the module includes automatic conversion between UTF-16LE and UTF-8 for Windows file operations, ensuring compatibility across different platforms. Recent updates have improved the handling of environment variables and introduced new methods for time manipulation, enhancing the module's functionality. The latest version also addresses various bugs and compatibility issues, making it a robust choice for system-level programming in SPVM.
Compile Perl subs to optimized bytecode via optree walking
Stefo is a Perl module designed to enhance performance by compiling simple Perl subroutines into optimized bytecode, allowing them to execute at speeds comparable to C. By utilizing optree walking at compile-time, Stefo identifies recognizable patterns in the provided subroutine and converts them into a lightweight bytecode representation, significantly reducing execution cycles from approximately 100 to around 5 for certain operations. This module supports a variety of patterns, including numeric and string comparisons, arithmetic operations, and boolean logic, while falling back to standard Perl execution for unsupported patterns. Additionally, Stefo offers direct helper functions for common type checks and value assessments, making it a versatile tool for developers looking to optimize their Perl code, particularly in scenarios involving type constraints and hot loop predicates.
SPVM-Thread
Release | 3 Feb 2026 11:41 PM | Author: KIMOTO | Version: 0.006
CPAN Testers: Pass 100.0%
Native Thread
The SPVM::Thread module provides a straightforward interface for creating and managing native threads in Perl, leveraging the capabilities of C++'s std::thread. With this module, developers can easily spawn new threads to execute tasks concurrently, allowing for more efficient execution of code that can benefit from parallel processing. The module includes methods for thread creation, joining, and retrieving thread IDs, making it a powerful tool for multi-threaded programming in Perl. A notable recent update in version 0.006 enhances the module's exception handling by including full stack traces, which aids in debugging and improves error reporting during thread execution.
Dist-Zilla-PluginBundle-Author-ETHER
Release | 3 Feb 2026 11:03 PM | Author: ETHER | Version: 0.171
Upvotes: 4 | CPAN Testers: Pass 100.0%
A plugin bundle for distributions built by ETHER
The `Dist::Zilla::PluginBundle::Author::ETHER` module is a comprehensive plugin bundle designed for Perl distributions authored by Karen Etheridge. It streamlines the process of building, testing, and releasing Perl modules by integrating a wide array of plugins that handle tasks such as file gathering, metadata generation, testing, and version management. This bundle is particularly tailored for use with GitHub, ensuring that the necessary configurations for repositories and issue tracking are automatically set up. Recent updates include an addendum to the generated CONTRIBUTING file regarding AI-generated contributions, reflecting the module's ongoing evolution to accommodate modern development practices. This module is ideal for authors looking to simplify their distribution workflow while adhering to best practices in Perl module development.
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 properly authenticated through DMARC and SPF checks. By creating a BIMI object with necessary parameters such as domain, selector, and validation objects for DMARC and SPF, users can easily manage authentication results and enhance email deliverability with brand logos. This module is particularly useful for organizations looking to improve their email security and brand recognition through the implementation of BIMI standards.
Markdown-Render
Release | 3 Feb 2026 09:35 PM | Author: BIGFOOT | Version: v2.0.2
Render markdown using GitHub API
Markdown::Render is a Perl module designed to convert Markdown documents into HTML format, utilizing either GitHub's API or the Text::Markdown::Discount library for rendering. It allows users to enhance their Markdown files with custom metadata and provides options for specifying CSS styles and document titles. The module can be used programmatically or via a command-line utility, making it versatile for various workflows. Notably, recent updates have improved the handling of table of contents generation and streamlined the command-line interface, ensuring a more efficient user experience. For more details, users can refer to the module's documentation on GitHub.
CLI-Simple
Release | 3 Feb 2026 09:27 PM | Author: BIGFOOT | Version: v1.0.11
Simple command line script accelerator
CLI::Simple is a minimalist object-oriented base class designed for creating command-line interface (CLI) applications in Perl. It simplifies the process of building scripts that handle options, commands, and arguments, allowing developers to focus on functionality rather than boilerplate code. With features like automatic logging, command argument parsing, and customizable help output, CLI::Simple provides a flexible framework without imposing a rigid structure. Recent updates in version 1.0.11 introduced new package variables, `$AUTO_HELP` and `$AUTO_DEFAULT`, which enhance control over default behaviors when no command is specified, allowing for a more tailored user experience. This module is ideal for internal tools and scripts where a lightweight solution is preferred over a full application framework.
Blessed-Merge
Release | 3 Feb 2026 08:25 PM | Author: LNATION | Version: 1.02
CPAN Testers: Pass 100.0%
Merge Blessed Refs
The Blessed::Merge Perl module provides a powerful solution for deeply merging multiple blessed references, allowing developers to combine complex data structures while maintaining control over how the merging occurs. With options to ensure unique keys in hashes, preserve order and uniqueness in arrays, and manage reference checks, this module is particularly useful for applications that require the integration of various object states or configurations. By instantiating a Blessed::Merge object with specific options, users can easily merge objects while customizing the behavior to suit their needs, making it an essential tool for developers working with object-oriented Perl.
CPAN-Uploader
Favorite | 3 Feb 2026 07:10 PM | Author: RJBS | Version: 0.103018
Upvotes: 25 | CPAN Testers: Pass 100.0%
Upload things to the CPAN
The CPAN::Uploader module is designed to facilitate the uploading of files to the Comprehensive Perl Archive Network (CPAN), making it easier for developers to share their Perl modules. With a straightforward interface, it allows users to upload files by specifying their CPAN/PAUSE credentials, the target directory, and other optional parameters such as HTTP proxy settings and retry options for failed uploads. The module also includes methods for reading configuration files and logging messages, enhancing usability and debugging capabilities. A recent noteworthy change in version 0.103018 involved refactoring and testing of the .pause parser, improving the module's reliability and performance. Overall, CPAN::Uploader is an essential tool for Perl developers looking to streamline the process of distributing their work on CPAN.
App-Software-License
Favorite | 3 Feb 2026 07:02 PM | Author: ETHER | Version: 0.11
Upvotes: 3 | CPAN Testers: Pass 100.0%
Command-line interface to Software::License
App::Software::License is a Perl module that provides a command-line interface for generating software license notices using the Software::License framework. It allows users to easily create copyright notices and license texts by specifying attributes such as the license holder's name, year, and the type of notice desired (either a brief notice or the full license text). Configuration options can be set via command-line arguments or through a configuration file located in the user's home directory. The recent update to version 0.11 improved the module by ensuring that warnings are only checked during tests when under AUTHOR_TESTING, thus preventing installation issues related to warnings in prerequisites. This makes it easier for developers to integrate licensing into their projects without unnecessary complications.
Class-XSConstructor
Release | 3 Feb 2026 05:00 PM | Author: TOBYINK | Version: 0.023002
A super-fast constructor in XS
Class::XSConstructor is a high-performance Perl module designed to create constructors for classes using XS (eXternal Subroutine) for speed. It extends the basic functionality of Class::XSAccessor by supporting advanced features similar to Moose, such as initialization from hash references or key-value pairs, required attributes, defaults, builders, type constraints, and type coercions. The module allows for fine-grained control over attribute initialization, including support for triggers, weak references, and custom slot initializers. Notably, recent updates have introduced the `clone_on_write` feature, which enables automatic deep cloning of incoming arguments, enhancing data integrity within objects. This module is ideal for developers seeking efficient object construction with robust attribute management in Perl applications.
Perl-Tidy
Release | 3 Feb 2026 02:43 PM | Author: SHANCOCK | Version: 20260204
Upvotes: 147 | CPAN Testers: Pass 100.0%
Indent and reformat perl scripts
Perl::Tidy is a Perl module designed to parse and beautify Perl source code, making it easier to read and maintain. It provides a programmatic interface to the functionality of the perltidy utility, allowing users to format Perl scripts directly from their code. The module accepts various input parameters, including source code, destination for the formatted output, and configuration options through a .perltidyrc file. It also supports error handling, logging, and customizable formatting options, such as pre- and post-filters for additional processing. Notably, recent updates have improved handling of comments and introduced new parameters for better control over formatting, including options to manage side comments and maintain existing line breaks. This makes Perl::Tidy a powerful tool for developers looking to enforce coding standards and improve code readability in their Perl projects.
Lightweight Dependency Injection Container
Beam::Wire is a lightweight dependency injection container designed for Perl applications, enabling developers to manage object creation and dependencies through a flexible configuration system, typically defined in YAML format. By utilizing Beam::Wire, users can specify relationships between services, allowing the container to automatically instantiate and configure objects as needed, thereby promoting an inversion of control. This approach enhances modularity and testability in applications, as it decouples service creation from usage. With features like service overrides, nested containers, and event handling, Beam::Wire provides a robust framework for building complex applications while maintaining ease of customization and extensibility.
DBIx-Class-Async
Release | 3 Feb 2026 12:26 PM | Author: MANWAR | Version: 0.51
Non-blocking, multi-worker asynchronous wrapper for DBIx::Class
DBIx::Class::Async is a Perl module designed to facilitate asynchronous database operations using the DBIx::Class ORM framework. By leveraging a process-based worker pool built on IO::Async, it allows developers to perform non-blocking CRUD operations while maintaining persistent database connections in separate worker processes. This module returns results as Future objects, enabling efficient handling of database queries without stalling the main event loop. Key features include support for high-level atomic operations, transaction management, optional result caching, and health checks for worker processes. Ideal for applications requiring concurrent database access, DBIx::Class::Async enhances performance and responsiveness in environments where traditional synchronous database interactions may lead to bottlenecks.
IPC-MicroSocket
Release | 3 Feb 2026 12:05 PM | Author: PEVANS | Version: 0.05
Minimal request/response or pub/sub mechanism
The "IPC::MicroSocket" Perl module provides a lightweight mechanism for implementing request/response and publish/subscribe communication over local UNIX sockets. It allows clients to connect to a server, facilitating the exchange of messages where clients can send requests and receive asynchronous responses, or subscribe to specific topics to receive broadcast messages. Designed for simplicity, this module transmits data as raw byte strings, requiring users to handle any necessary encoding or serialization for more complex data types. Ideal for small-scale applications, "IPC::MicroSocket" stands out for its minimalistic approach, avoiding the complexities of larger frameworks while still offering essential messaging capabilities.
Excel-ValueWriter-XLSX
Favorite | 3 Feb 2026 09:09 AM | Author: DAMI | Version: 1.10
Upvotes: 3 | CPAN Testers: Pass 100.0%
Generating data-only Excel workbooks in XLSX format, fast
Excel::ValueWriter::XLSX is a Perl module designed for the efficient creation of data-only Excel workbooks in XLSX format, focusing on speed and low resource consumption. Unlike more feature-rich alternatives like Excel::Writer::XLSX, this module prioritizes performance by generating workbooks that contain only plain values and formulas, making it ideal for scenarios where Excel is used as a simple database or for handling large datasets. Users can easily add sheets with various data sources, including arrays, database handles, or callback functions, and can define names and formulas for use within the workbook. Recent updates include the addition of a <dimension> node in the XML output to enhance compatibility with the Excel ecosystem, particularly for the companion module Excel::ValueReader.
Git-Server
Release | 3 Feb 2026 08:09 AM | Author: BBB | Version: 0.036
Secure Git Server with more granular hooks capabilities than default git
Git::Server is a Perl module designed to serve as a secure Git server that enhances the default capabilities of Git by offering more granular hooks and access control lists (ACLs). It acts as a drop-in replacement for standard Git servers, allowing administrators to set up a Git repository with advanced server hooks and user permissions. The module simplifies the process of managing user access through SSH keys, enabling authorized users to perform Git operations seamlessly. With its focus on security and flexibility, Git::Server is ideal for developers looking to implement a robust Git hosting solution with tailored access controls.
SPVM-HTTP-Tiny
Release | 3 Feb 2026 06:58 AM | Author: KIMOTO | Version: 0.016
HTTP Client
SPVM::HTTP::Tiny is an experimental HTTP client module designed for use within the SPVM (Simple Perl Virtual Machine) framework, providing a straightforward interface for making HTTP requests. It serves as a wrapper around Mojo::User::Agent, allowing developers to perform various HTTP operations such as GET, POST, PUT, PATCH, HEAD, and DELETE requests while managing request headers and timeouts. The module emphasizes ease of use with a simple method for creating a new HTTP client instance and handling responses, including status codes and content. However, due to its experimental nature, users should be aware of potential incompatibilities and dependencies. This module is ideal for developers looking to integrate HTTP functionality into their SPVM applications with minimal overhead.
SPVM-Mojolicious
Release | 3 Feb 2026 06:09 AM | Author: KIMOTO | Version: 0.042
Real-time web framework
SPVM::Mojolicious is a real-time web framework that serves as a port of Perl's Mojolicious to the SPVM (Simple Perl Virtual Machine) environment. Currently in early development, this framework lacks comprehensive documentation, and its methods and functionalities are subject to frequent changes. It includes a variety of classes for handling HTTP requests, cookies, assets, and more, drawing on the capabilities of Mojolicious. Recent updates have introduced significant changes, such as the requirement for SPVM::Go 0.024 and the injection of Go::Context into several methods of Mojo::UserAgent, reflecting ongoing enhancements to its functionality. As it evolves, SPVM::Mojolicious aims to provide a robust foundation for building real-time web applications in the SPVM ecosystem.
Goroutines of The Go Programming Language
The SPVM::Go module provides a Perl interface to the goroutines and channels of the Go programming language, enabling concurrent programming within Perl applications. It allows developers to create and manage goroutines using the `go` method, and to communicate between them via channels created with the `make` method. The module includes various methods for scheduling, sleeping, and handling I/O operations with timeouts, ensuring efficient management of concurrent tasks. Recent updates have improved the handling of goroutine cancellation and introduced support for default values in sleep and I/O methods, enhancing usability and flexibility for developers. With its robust features, SPVM::Go is an essential tool for Perl programmers looking to leverage Go's concurrency model.
App-ansicolumn
Release | 3 Feb 2026 05:25 AM | Author: UTASHIRO | Version: 1.51
ANSI sequence aware column command
The `ansicolumn` Perl module is designed to facilitate the formatting of text output in a columnar layout while being aware of ANSI escape sequences, making it particularly useful for terminal applications that utilize color and formatting. This module allows users to create visually appealing and organized text displays, accommodating various options for borders, alignment, and margins. Recent updates include the addition of the `ansicolumn()` function for compatibility with `App::Greple::tee`, enhancing its integration capabilities, and the requirement for `Text::ANSI::Fold` version 2.3303, which improves text handling. With its flexible options and robust functionality, `ansicolumn` is an essential tool for developers looking to enhance terminal output in Perl applications.
App-ansifold
Release | 3 Feb 2026 05:24 AM | Author: UTASHIRO | Version: 1.35
Fold/colrm/cut command handling ANSI terminal sequences
App::ansifold is a Perl module designed to handle ANSI terminal sequences effectively, allowing users to fold command output while preserving the formatting of colored or styled text. This utility is particularly useful for developers and system administrators who need to manage terminal output that includes ANSI escape codes, ensuring that text remains readable and well-structured. Recent updates include the addition of a new `--margin` option for specifying right margin width and enhancements for better integration with other tools, such as the `App::Greple::tee`. The module also now supports improved handling of Korean text and various options for text formatting, making it a versatile tool for terminal output management.
SPVM-Getopt-Long
Release | 3 Feb 2026 05:04 AM | Author: KIMOTO | Version: 0.004
Parsing Command Line Options
The SPVM::Getopt::Long module provides a robust mechanism for parsing command line options in SPVM (Simple Perl Virtual Machine). It allows developers to define options with various types, including strings, integers, and floating-point numbers, and to handle boolean flags seamlessly. By utilizing the `GetOptionsFromArray` method, users can easily specify option names and their expected types, while the module manages the parsing of command line arguments, ensuring that values are correctly assigned to a provided hash structure. Recent updates include a bug fix in version 0.004 that addresses issues with options containing hyphens, enhancing the module's reliability and usability. This module is essential for SPVM applications that require flexible command line interfaces.
Serve HTTP with Future::IO
The "Conduit" Perl module provides an asynchronous HTTP server built on Future::IO, allowing developers to handle HTTP requests efficiently. It supports both a simple HTTP::Message-based responder and PSGI applications, making it versatile for various web application architectures. The server can be configured to listen on a specified TCP port and is designed to report basic metrics about incoming requests and outgoing responses through Metrics::Any. Recent updates have introduced a simple HTTP::Message responder as an alternative to PSGI, along with reliability improvements that prevent server crashes due to client connection issues. This module is still in an experimental phase, with plans for future enhancements, including support for PAGI and HTTPS.
Sys-Async-Virt-Connection-TLS
Release | 2 Feb 2026 08:50 PM | Author: EHUELS | Version: 0.0.2
TLS connectivity for Sys::Async::Virt
The Sys::Async::Virt::Connection::TLS module provides a means to establish a secure connection to a remote LibVirt server using TLS sockets, ensuring encrypted communication by default. Designed for asynchronous operations, it integrates with Future::IO::Resolver for non-blocking DNS resolution, although it can fall back to blocking calls if necessary. Users can create connections through the Sys::Async::Virt::Connection::Factory, and the module supports additional parameters as outlined in LibVirt's documentation, although some features, such as "tls_priority" and "no_verify," are currently unsupported. The recent update to version 0.0.2 improved the module's ability to detect class versions, enhancing its robustness.
Async-Redis
Release | 2 Feb 2026 08:43 PM | Author: JJNAPIORK | Version: 0.001004
Async Redis client using Future::IO
Async::Redis is an asynchronous Redis client for Perl that leverages Future::IO to provide a modern, non-blocking interface for interacting with Redis databases. It supports full async/await syntax through Future::AsyncAwait, making it easy to perform Redis operations without blocking the event loop. Key features include automatic reconnection with exponential backoff, connection pooling, pipelining for efficient command execution, and robust PubSub capabilities. The module is event loop agnostic, compatible with various backends like IO::Async and UV, and includes support for TLS/SSL connections and OpenTelemetry observability. With its ability to handle multiple concurrent commands safely and its comprehensive support for Lua scripting, Async::Redis is ideal for high-performance applications that require efficient and scalable Redis interactions.
Data-Alias
Release | 2 Feb 2026 07:12 PM | Author: XMATH | Version: 1.29
Comprehensive set of aliasing operations
The Data::Alias Perl module provides a powerful set of aliasing operations that allow developers to create aliases for variables, arrays, and hashes instead of making copies, enhancing both performance and code readability. By using the `alias` keyword, users can define aliases within a block or for specific variables, enabling efficient manipulation of data without the overhead of copying. The module also includes the `copy` function to restore normal copying semantics when needed, and the `deref` function for dereferencing multiple references at once. Recent updates have improved compatibility with newer Perl versions, including fixes for state variables and handling negative array indices. While Data::Alias offers valuable functionality, users are encouraged to consider the core aliasing features introduced in Perl 5.22 for more robust support.
Moonshine-Magic
Release | 2 Feb 2026 07:12 PM | Author: LNATION | Version: 0.10
D[ o_0 ]b - has, extends, lazy_components
Moonshine::Magic is a Perl module designed to enhance the functionality of Moonshine components by providing features such as attribute handling, component extension, and lazy loading of HTML elements. With its simple syntax, developers can easily define attributes using the `has` method, extend existing components with `extends`, and utilize `lazy_components` to defer the creation of HTML elements until they are needed. This module streamlines the process of building dynamic web applications by allowing for cleaner and more maintainable code. Notably, recent updates have improved the lazy loading capabilities, making it even easier to manage component rendering efficiently.
Monitoring-Sneck
Release | 2 Feb 2026 06:44 PM | Author: VVELOX | Version: v1.3.0
CPAN Testers: Pass 100.0%
A boopable LibreNMS JSON style SNMP extend for remotely running nagios style checks
Monitoring::Sneck is a Perl module designed to facilitate the execution of Nagios-style checks through a JSON interface for LibreNMS, leveraging SNMP extensions. It allows users to define checks and environment variables in a configuration file, which the module parses to execute commands and return results in a structured format. The latest version, 1.3.0, introduces options for quiet operation and locking, enhancing its usability in various monitoring scenarios. This module is particularly useful for system administrators looking to integrate custom checks into their monitoring solutions while maintaining a clear and manageable configuration.