CPANscan logo

CPANscan

Recent Perl modules, releases and favorites.
Last updated 19 April 2026 08:31 PM
Perl logo

DBIx-Spreadsheet

Release | 19 Apr 2026 05:54 PM | Author: CORION | Version: 0.05
Upvotes: 1 | CPAN Testers: Pass 100.0%
Query a spreadsheet with SQL
DBIx::Spreadsheet makes an Excel or ODS workbook look like a database so you can run SQL queries against sheets using DBI. It treats each worksheet as a table and uses the first row as column names, filling empty headers with generated names and cleaning names for safe use. The module reads files through Spreadsheet::Read so it can handle CSV, XLS, XLSX and ODS when the matching parser modules are installed, and it exposes a DBI handle and helper methods to list available tables. Parsing and normalizing cell values is handled with pragmatic hacks, so results may vary between file formats, but for quick ad hoc querying and simple integrations this provides a convenient way to query spreadsheets with familiar SQL.
Perl logo

Quiq

Release | 19 Apr 2026 05:04 PM | Author: FSEITZ | Version: 1.237
Upvotes: 4 | CPAN Testers: Pass 66.7%N/A 33.3%
Class library for rapid development
Quiq is a large, actively maintained Perl class library that bundles more than 260 small, reusable modules to speed up common development tasks. It provides utilities for filesystem and path handling, temporary files, logging and debugging, database access and result management, HTML and JavaScript generation, web clients and APIs, charting and plotting, image and media operations, XML and JSON handling, time and date utilities, plus domain helpers such as ZUGFeRD invoice XML generation and related validators. The collection is deliberately broad and pragmatic so you can pick stable building blocks instead of reinventing utility code for scripts, web tools, data pipelines, or quick prototypes. Installation is simple via cpanm Quiq and the project is under continuous development by Frank Seitz, with recent releases refining the database connection documentation and adding features and validators for electronic invoicing and a range of convenience methods across the library.
Perl logo

CPANSA-DB

Release | 19 Apr 2026 04:49 PM | Author: BRIANDFOY | Version: 20260419.002
Upvotes: 4 | CPAN Testers: Pass 95.3%N/A 4.7%
The CPAN Security Advisory data as a Perl data structure, mostly for CPAN::Audit
CPANSA::DB supplies the CPAN Security Advisory dataset as a ready-to-use Perl data structure, primarily to back CPAN::Audit but useful to any code that needs machine-readable vulnerability and advisory reports for CPAN modules. The distribution exposes a single subroutine, db, which returns a hashref of all reports so you can quickly integrate advisory data into audits, monitoring, or build tools. Releases include a JSON export and are signed with GPG and GitHub Attestations so you can verify the archive came from the official source, and GitHub releases include attestations and attestations instructions. The project is actively maintained with regular data updates; the recent 2026-04-19 update refreshed records and fixed a couple of improperly split affected_versions for Encode and IO::Socket. If you need an up-to-date, verifiable feed of CPAN vulnerability reports for security checks or automation, this module is likely relevant to you.
Perl logo

LaTeX-Replicase

Release | 19 Apr 2026 04:44 PM | Author: DONANGEL | Version: 0.705
Upvotes: 1 | CPAN Testers
Perl extension implementing a minimalistic engine for filling real TeX-LaTeX files that act as templates
LaTeX::Replicase is a compact Perl template engine for programmatically filling real TeX/LaTeX files, letting you drive document content from Perl data structures rather than embedding logic in the template. You place simple tags into an existing .tex template to substitute scalars, arrays and hashes, to repeat table rows, and to add or suppress surrounding text based on whether values exist or are defined, and the module can write the filled file to disk or stream it to STDOUT. It includes options to treat templates as UTF‑8, to escape TeX metacharacters automatically, and to control handling of undefined names, debug output and silence, while protecting the original template from being overwritten. The interface is deliberately minimal so templates stay readable and all conditional logic stays in your Perl data, and common practical limits are documented such as avoiding spaces in file paths and preferring simple variable names. Recent updates added a tex_escape helper for safer TeX output and special magic values that let a value force early termination of the generated document by inserting \endinput or \end{document}, making it easier to control final output.
Perl logo

OpenAPI-Modern

Release | 19 Apr 2026 04:30 PM | Author: ETHER | Version: 0.134
Upvotes: 5 | CPAN Testers: Pass 100.0%
Validate HTTP requests and responses against an OpenAPI v3.0, v3.1 or v3.2 document
OpenAPI::Modern lets you validate HTTP requests and responses against OpenAPI v3.0, v3.1 and v3.2 documents so you can ensure clients and servers follow your API contract. It loads an OpenAPI document and uses a full JSON Schema evaluator to check paths, parameters, headers and bodies, converting many common request and response types into Mojolicious message objects and returning a structured JSON::Schema::Modern::Result that includes any deserialized data. The module helps find the matching path and operation in a spec, follows $ref chains, supports many query, cookie and path parameter styles, bundles up-to-date metaschemas, and can be cached for faster startup in preforked apps. A few areas are not yet implemented such as multipart and application/x-www-form-urlencoded media handling and it does not validate Authorization headers against security schemes. Recent releases improved parameter parsing, cookie and query decoding, added the with_defaults option to populate default values, and the latest 0.134 update adds a new JSON Schema format "media-range" and smarter media-type matching that takes parameters and structured suffixes into account. If you need runtime or test-time validation of messages against an OpenAPI spec and you work with Mojolicious or can convert your requests and responses to its message objects, this module is likely a good fit.
Perl logo

IPC-Manager-Client-SharedMem

Release | 19 Apr 2026 03:41 PM | Author: EXODIST | Version: 0.000026
CPAN Testers: Pass 100.0%
SysV shared memory as a message store
IPC::Manager::Client::SharedMem is a protocol plugin for IPC::Manager that stores client state, messages, and statistics in a SysV shared memory segment so multiple processes on the same host can exchange messages without a network. It serializes access with a SysV semaphore and keeps the whole dataset as JSON prefixed with a 4 byte network-order length, re-allocating a larger segment automatically if the data grows. The module is simple to use via ipcm_spawn and ipcm_connect and encodes the route as "shmid:semid". Because each mutation acquires the semaphore and reads and writes the entire segment, it is best suited to moderate-volume local IPC rather than extreme high-throughput workloads. Requires IPC::SysV 2.09 or later and was split out from IPC::Manager in its initial release.
Perl logo

DateTime-Format-Lite

Favorite | 19 Apr 2026 12:43 PM | Author: JDEGUEST | Version: v0.1.1
Upvotes: 1 | CPAN Testers: Pass 100.0%
Parse and format datetimes with strptime patterns, returning DateTime::Lite objects
DateTime::Format::Lite parses and formats datetimes using familiar strptime-style patterns and returns lightweight DateTime::Lite objects, making it a compact alternative to DateTime::Format::Strptime for projects that prefer fewer dependencies. You can set locale and time zone, supply a zone_map to disambiguate abbreviations, and the module resolves timezone abbreviations live against an included IANA tzdata SQLite database so lookups stay current. Common formatting and parsing paths are XS-accelerated when a C compiler is available at install time with a pure-Perl fallback otherwise. Errors are exposed via an error object or can be made fatal, one-shot convenience functions strptime and strftime are provided for quick use, and the formatter can be serialized for transport or storage.
Perl logo

Docopt

Favorite | 19 Apr 2026 11:07 AM | Author: TOKUHIROM | Version: 0.03
Upvotes: 7 | CPAN Testers: Pass 100.0%
Command-line interface description language
Docopt is a Perl port of the Docopt command-line interface description language that turns a program's help or usage text into a working argument parser. You write a conventional help/usage block describing commands, options, positional arguments, optional groups, alternatives and repeating elements and docopt() extracts that specification and returns a HashRef of parsed options and arguments so your script can use them directly. The module reads the SYNOPSIS pod by default but you can supply your own doc text and control argv, automatic --help handling, --version, and parsing mode. It follows the familiar short/long option and default-value conventions, is based on the original Python implementation, and is aimed at developers who want a readable, spec-driven way to define and parse command-line interfaces. Note that the module is still under development and its API may change.
Perl logo

Math-MPC

Release | 19 Apr 2026 09:31 AM | Author: SISYPHUS | Version: 1.42
Upvotes: 1 | CPAN Testers: Pass 90.8%Fail 9.2%
Perl interface to the MPC (multi precision complex) library
Math::MPC provides a Perl wrapper around the MPC C library so you can work with arbitrary‑precision complex numbers from Perl, control per‑component bit precision and rounding modes, and call the same high‑quality math routines MPC exposes, including basic arithmetic, powers and roots, exponentials and logarithms, trig and hyperbolic functions, comparisons, conversions and formatted I/O. The module overloads common operators so expressions like $a + $b, $a ** $b and sqrt($a) behave naturally and it interoperates with Math::MPFR and Math::GMP objects for mixed high‑precision workflows. Objects are normally blessed and automatically cleaned up when they go out of scope, with alternative “_nobless” initializers provided for manual memory control. You must have the GMP, MPFR and MPC C libraries installed (install GMP first, then MPFR, then MPC) and be aware of a few practical caveats noted by the author: overloaded operators use the current default rounding mode and string operands are parsed at the default precision, the sign of zero is not always handled by overloads, and passing the wrong argument types can cause a segfault. The recent 1.42 release tidied string representations of NaN/Inf and includes a workaround for a division bug in mpc‑1.4.0, making the module a solid choice if you need reliable, high‑precision complex arithmetic in Perl.
Perl logo

Term-Choose-Util

Release | 19 Apr 2026 08:07 AM | Author: KUERBIS | Version: 0.149
Upvotes: 2 | CPAN Testers: Pass 100.0%
TUI-related functions for selecting directories, files, numbers and subsets of lists
Term::Choose::Util is a small Perl toolkit for building terminal text-based selection dialogs that let users browse and pick directories, choose files, select one or many items from a list, compose numeric values, or edit simple settings via an interactive menu. It can be used as a functional interface or via an object, and exposes many customization options for prompts, colors, mouse support, layout and margins, hidden-file visibility, filtering, locale-aware decoding of filenames and current-selection labels, so you can adapt the look and behavior to your script. Options are passed as a hash reference and functions return the chosen value or update a supplied configuration hash when appropriate. The module targets Perl 5.10.1 and newer and expects standard IO encoding to be set correctly. Use it when you need quick, customizable terminal selection UIs in Perl programs.
Perl logo

Riemann-Client

Release | 19 Apr 2026 04:03 AM | Author: MRUIZ | Version: 0.06
Upvotes: 1 | CPAN Testers: Pass 100.0%
A Perl client for the Riemann event system
Riemann::Client is a lightweight Perl client for sending events and running queries against a Riemann event and metric server. It builds events as Perl hashrefs and sends them over the network with simple options for host, port, and protocol, using TCP by default and offering UDP if you need it. You call send to deliver one or many events and query with a Riemann query string to retrieve matching states. TCP mode will try to reconnect on disconnect and will report communication errors, while UDP mode is constrained by Riemann's datagram size limit and will raise an exception for oversized messages. Use this module when you want to report service states, metrics, tags, timestamps and descriptions from Perl into a Riemann deployment.
Perl logo

DBIx-Class-InflateColumn-Serializer

Release | 19 Apr 2026 02:56 AM | Author: MRUIZ | Version: 0.10
Upvotes: 13 | CPAN Testers: Pass 100.0%
Inflators to serialize data structures for DBIx::Class
DBIx::Class::InflateColumn::Serializer lets you transparently store Perl data structures in a single database column by automatically serializing on write and inflating back to native Perl structures on read for DBIx::Class result objects. You enable it by loading InflateColumn::Serializer and declaring a column with serializer_class set to JSON, YAML, or Storable so DBIx::Class handles conversion for you. The module includes safety checks that raise exceptions if the serialized payload won’t fit the column or if deserialization fails. It uses modern JSON backends such as JSON::MaybeXS where applicable. The most recent release updated the license and moved the repository to Codeberg without functional changes. This is handy when you need to persist nested or ad hoc data without adding tables, but you should avoid overusing it when that data would be better modeled in dedicated columns or related tables.
Perl logo

FCGI-Buffer

Release | 19 Apr 2026 12:58 AM | Author: NHORNE | Version: 0.22
CPAN Testers: Pass 100.0%
Verify, Cache and Optimise FCGI Output
FCGI::Buffer is a lightweight helper for FastCGI scripts that verifies and speeds up the HTML your application emits by linting output, reducing and minifying content, compressing responses and taking advantage of client and server caches. You create one buffer per FCGI::Accept and configure options to enable HTML::Lint checking, gzip/Brotli/Zstd compression, automatic ETag and Last-Modified headers with 304 responses, and a server-side cache via CHI to avoid recomputing expensive pages; it can also write dynamic output to static files for direct serving. The module exposes simple init/set_options calls to tune behavior, generate cache keys and durations, and log activity, and it includes safeguards such as a NO_CACHE override for debugging. Known caveats noted by the author include HTML::Lint only supporting HTML4, possible JavaScript issues when using certain packing techniques, interactions with mod_deflate, and the need to capture Template output rather than print it directly. Recent releases added Zstd compression support and a handful of bug fixes and improved error messages.
Perl logo

Number-Base-SpreadsheetColumn

Release | 19 Apr 2026 12:06 AM | Author: PERLANCAR | Version: 0.001
CPAN Testers: Pass 98.9%N/A 1.1%
Convert spreadsheet column name (e.g. "A", "Z", "AA") to number (e.g. 0, 25, 26) and vice versa
Number::Base::SpreadsheetColumn is a tiny utility that converts Excel-style column labels like "A", "Z", and "AA" to zero-based numeric indexes and back, via two functions, from_scbase and to_scbase. It models spreadsheet columns as a base-26 system with a 1-based digit scheme so that from_scbase("A") yields 0 and to_scbase(0) yields "A". The module is ideal when you need to translate human-readable column names into programmatic indices or generate column headers while processing CSV files, spreadsheets, or any column-oriented data. It is focused, easy to use, and integrates into scripts without extra dependencies.
Perl logo

App-MARC-Leader

Release | 18 Apr 2026 09:35 PM | Author: SKIM | Version: 0.11
CPAN Testers: Pass 87.5%Fail 12.5%
Tool to decode MARC leader from file or string
App::MARC::Leader is a small Perl base class for a command-line tool that reads MARC XML records and prints the record leader in a human readable form, showing values like record length, record status, type of record, bibliographic level, character coding scheme and the directory field lengths. It is intended for librarians, cataloging staff and developers who need a quick way to inspect MARC leader metadata or to embed/extend that functionality in scripts. The module exposes a simple new/run interface, supports localized and optional colorized output, and uses existing MARC and Unicode libraries under a BSD 2-Clause license.
Perl logo

Lingua-TermWeight

Release | 18 Apr 2026 09:34 PM | Author: WATERKIP | Version: 0.01
CPAN Testers: Pass 100.0%
Language-independent TermWeight calculator
Lingua::TermWeight is a compact Perl toolkit for computing term frequency (TF), inverse document frequency (IDF) and combined TF‑IDF weights so you can measure how important words are within one or many documents. It works with a pluggable word segmenter so you can use the simple SplitBySpace segmenter that ships with the module or provide a language‑specific tokenizer, and it can return raw or length‑normalized scores as hash or array references for easy consumption in search, text mining, feature extraction or keyword ranking workflows. The project is a modern, lightweight fork of Lingua::TFIDF that drops Japanese‑specific dependencies and moves to Object::Pad to keep the API familiar while making installation and maintenance simpler.
Perl logo

JSON-Schema-Modern

Release | 18 Apr 2026 07:14 PM | Author: ETHER | Version: 0.638
Upvotes: 10 | CPAN Testers: Pass 97.6%Fail 2.4%
Validate data against a schema using a JSON Schema
JSON::Schema::Modern is a Perl JSON Schema evaluator and validator that implements the full specification up through Draft 2020-12, letting you validate Perl data structures or JSON strings against reusable schema documents and receive a rich Result object describing errors, annotations and defaults. It supports older drafts as well, bundles the official metaschemas, and offers configurable behavior such as short-circuiting, format validation, stringy-numbers handling, content media-type and encoding support, custom format validators and vocabularies, callback hooks, and caching helpers for faster startup. You add schema documents to the evaluator and then call evaluate or evaluate_json_string to run validation, and you can extend or override format, encoding and media-type handling to suit your application. A few convenience features are not implemented yet, for example automatic loading of schema documents from disk or the network, and some format checks require optional CPAN modules. Also take care with untrusted schemas because embedded regular expressions and large-number operations can be expensive or unsafe.
Perl logo

Finance-Quote

Release | 18 Apr 2026 06:48 PM | Author: BPSCHUCK | Version: 1.69
Upvotes: 11 | CPAN Testers: Pass 100.0%
Get stock and mutual fund quotes from various exchanges
Finance::Quote is a Perl library for retrieving stock, fund and bond quotes from a large collection of global data sources via a modular "quotelet" system, making it easy to ask for pricing, volume, dividend, NAV and other standard fields and to request results in a target currency using configurable currency-rate providers. You create a Finance::Quote object, load the modules you need or use the defaults, and call fetch to get results back as a two-dimensional hash keyed by symbol and label, with options to set timeouts, required labels, failover behavior and per-module API keys. The project includes many exchange-specific modules and separate CurrencyRates modules so you can plug in services that require API keys and control conversion fallbacks. Recent updates include fixes to parsing whitespace, an update to handle cookies required by Stooq and the addition of a TwelveData currency-rates backend. Note that the library does not let callers control the internal failover order and that the two-dimensional hash return style can be less convenient than nested references.
Perl logo

Config-Model

Release | 18 Apr 2026 05:38 PM | Author: DDUMONT | Version: 2.161
Upvotes: 3 | CPAN Testers: Pass 86.8%N/A 13.2%
A framework to validate, migrate and edit configuration files
Config::Model is a mature Perl framework for describing, validating, migrating and interactively editing application configuration through a declarative model. You express your configuration schema as Perl data structures and the framework builds a validation engine, read/write backends and multiple user interfaces so you can inspect, edit and upgrade config safely from code or with the cme helper command. It supports common backends such as INI and Perl data files and can integrate Augeas for complex formats, and it can expose configuration as a virtual filesystem or drive GUI, curses or terminal UIs from the same model. The module is designed for maintainable, testable configuration tooling that separates model from processing logic, makes upgrades and audits easier and provides hooks for migration and automatic fixes. Recent releases include bug fixes around warped nodes and value handling and a change to use Filesys::Fuse3 for the Fuse UI.
Perl logo

Object-Iterate

Release | 18 Apr 2026 03:54 PM | Author: BRIANDFOY | Version: 1.153
Upvotes: 5 | CPAN Testers: Pass 100.0%
Iterators for objects that know the next element
Object::Iterate provides simple iterator-style control structures for objects that can yield a next element but cannot be turned into a list. It supplies iterate, igrep and imap which call an optional __init__, then loop while __more__ is true and fetch each element with __next__, setting $_ for the block just like foreach, and call an optional __final__ when done. Use it to apply foreach, grep or map semantics to streaming or virtual collections that would be impractical to materialize as an array. The expected method names can be changed via package variables ($Object::Iterate::Next, $More, $Init, $Final) but those names apply globally and AUTOLOADed methods cannot be detected, so you may need to localise the variables or provide real methods on your objects. The module is on GitHub and is released under the Artistic License 2.0.
Perl logo

Net-Async-WebSearch

Release | 18 Apr 2026 03:49 PM | Author: GETTY | Version: 0.002
CPAN Testers: Pass 100.0%
IO::Async multi-provider web search aggregator
Net::Async::WebSearch is an IO::Async-based search aggregator that fans a single query out to multiple pluggable web-search providers and merges their answers into a unified, deduplicated result set. It supports three modes: collect to wait for every provider and rank results with Reciprocal Rank Fusion, stream to emit unique results as each provider finishes, and race to return the first successful provider. You register provider instances (built-ins include DuckDuckGo, SearxNG, Serper, Brave, Google CSE, Yandex, Reddit and OAuth variants) and can stack multiple instances, tag them, and select or exclude them per call with simple selectors; per-provider option overrides and a shared Net::Async::HTTP client make configuration flexible. An optional fetch feature can GET top result pages and attach their bodies with configurable concurrency and timeouts, and every result is normalized with provenance and per-provider error reporting. The recent 0.002 release mainly tightens and clarifies the POD examples around provider instantiation and registration.
Perl logo

Mojo-DOM-Role-Style

Release | 18 Apr 2026 03:42 PM | Author: SCESANO | Version: 0.004
CPAN Testers: Pass 96.8%Fail 3.2%
Adds a style method to Mojo::DOM
Mojo::DOM::Role::Style is a lightweight role that adds a convenient style() method to Mojo::DOM elements for reading and manipulating an element's inline CSS. Calling style with no arguments returns a Style::Value object that stringifies to the CSS text and can be used like a hash to read individual properties, while calling it with a single property name returns that property's value. You can replace the whole style by passing a raw CSS string or an even length list of property/value pairs, merge new properties by passing a hash reference, or remove the style attribute by passing undef. Setter calls return the element for method chaining which makes it handy in DOM transformations, scraping, or server side HTML generation. If you work with Mojo::DOM and need simple programmatic control over inline styles this role makes those operations concise and predictable.
Perl logo

SVGPDF

Release | 18 Apr 2026 03:32 PM | Author: JV | Version: 0.092
CPAN Testers: Pass 95.0%N/A 5.0%
SVG renderer for PDF::API2
SVGPDF is a Perl module that converts SVG images into PDF XObjects you can drop into PDF::API2 or PDF::Builder documents, producing one or more reusable graphics objects along with metadata about their viewBox and sizes. It accepts SVG from a filename, filehandle or string and understands a wide range of common SVG elements and style attributes so it works well for charts, MathJax output, QR codes, and other tool-generated SVGs. You can control page size, add a debug grid, combine multiple SVGs into a single object, and supply a font-handler callback to map SVG font-family/style requests to PDF fonts or rely on built-in corefont aliases, but note that corefonts only cover Latin-1 characters. The module documents coordinate and unit handling and returns an array of hashes describing each XObject for easy placement in a PDF page. Some SVG features are only partially implemented, such as percentage units, embedded SVG and preserveAspectRatio, and other features like gradients, transparency, clipping, masking and text-on-path are not supported. Recent updates improved color parsing and handling of global color styles for text and tspan elements and fixed platform-specific test issues, making color handling and text rendering more robust.
Perl logo

Net-Async-Gearman

Release | 18 Apr 2026 02:23 PM | Author: PEVANS | Version: 0.02
CPAN Testers: Pass 90.1%Fail 1.2%N/A 8.6%
Use Gearman with IO::Async
Net::Async::Gearman is a small Perl adaptor that integrates the Gearman protocol with the IO::Async event loop, providing an async-friendly wrapper around Protocol::Gearman. It is a low-level building block rather than a user-facing API, so you should normally use the higher-level Net::Async::Gearman::Client; the module mainly exposes an async connect method that takes the same arguments as IO::Async::Handle and defaults to Gearman’s usual port 4730.
Perl logo

Module-Extract-Use

Release | 18 Apr 2026 01:51 PM | Author: BRIANDFOY | Version: 1.055
Upvotes: 1 | CPAN Testers: Pass 100.0%
Discover the modules a module explicitly uses
Module::Extract::Use scans Perl source files without running them to identify modules that are explicitly loaded with use or require and to detect inheritance declared via parent or base. It offers simple calls to return either a plain list of namespaces or detailed records that include any requested version, the import list, whether the entry looks like a pragma, and a flag showing if the module came from parent/base rather than a direct use. Because it uses static analysis it will not find modules loaded dynamically at runtime, for example via eval or variable requires. The API is lightweight: instantiate, call get_modules or get_modules_with_details, and check error for parse problems. This makes it handy for audits, dependency discovery, and tooling that needs to know the explicit, statically declared dependencies of Perl code.
Perl logo

Dist-Zilla-PluginBundle-OYOULE

Release | 18 Apr 2026 01:03 PM | Author: OYOULE | Version: 2.1.1
CPAN Testers: Pass 74.5%N/A 25.5%
Dist::Zilla plugin configuration for Author/OYOULE
Dist::Zilla::PluginBundle::OYOULE is a small, opinionated bundle for Dist::Zilla that encodes Oliver Youle's preferred packaging and release setup so you can drop a single [@OYOULE] stanza into dist.ini and get sensible defaults. It requires you to name the distribution and provides switches to publish to the public CPAN or a private DarkPAN, to point repository metadata at GitHub or a private git host, and to copy a generated license file back into the distribution root. If you build dists the same way as the author this saves repetitive configuration and keeps releases consistent, and recent releases added automatic package-version handling via Dist::Zilla::Plugin::OurPkgVersion and bumped the ExtUtils::MakeMaker requirement while standardizing the license to Perl 5.
Perl logo

Dist-Zilla-Plugin-UploadToDarkPAN

Release | 18 Apr 2026 12:34 PM | Author: OYOULE | Version: 2.0.1
CPAN Testers: Pass 67.6%N/A 32.4%
Release to a private CPAN (a.k.a a DarkPAN)
Dist::Zilla::Plugin::UploadToDarkPAN is a small Dist::Zilla extension that makes it easy to publish your Perl distribution to a private CPAN mirror, often called a DarkPAN. It hooks into Dist::Zilla’s release command and reuses the standard UploadToCPAN behavior while letting you specify a darkpan_uri for your internal upload endpoint. Configuration can live in dist.ini, ~/.dzil/config.ini, or ~/.pause and the plugin will prompt you for the darkpan URI if it is not provided. Use this plugin if you manage or publish to an internal CPAN-like server and want a drop-in way to release from Dist::Zilla to that private repository.
Perl logo

mb-JSON

Release | 18 Apr 2026 12:27 PM | Author: INA | Version: 0.06
Upvotes: 3 | CPAN Testers
JSON encode/decode for multibyte (UTF-8) strings
mb::JSON is a small, dependency-free JSON encoder/decoder for Perl that correctly handles UTF-8 multibyte strings and runs on very old Perls (5.005_03 and later), making it useful when JSON::XS or JSON::PP are unavailable. It offers simple symmetric APIs decode/parse to turn JSON text into Perl structures and encode/stringify to produce UTF-8 JSON text from Perl data, and it provides singleton objects mb::JSON::true and mb::JSON::false so JSON booleans are represented unambiguously. encode sorts hash keys for deterministic output and leaves UTF-8 bytes as-is while decode converts \uXXXX escapes into UTF-8. The module has a few cautions to know about: it does not support surrogate-pair decoding for \u sequences, it will not detect circular references during encoding, and non-array/non-hash references are stringified rather than causing errors. Recent 0.06 work added stringify() as an alias for encode() and formalized parse() as an alias for decode() to mirror JavaScript’s JSON.stringify/parse.
Perl logo

Jacode4e-RoundTrip

Release | 18 Apr 2026 08:15 AM | Author: INA | Version: 2.13.81.15
Upvotes: 3 | CPAN Testers
Converts JIS X 0213 Encodings with Round-Trip
Jacode4e::RoundTrip is a Perl module for reliably converting Japanese text between a wide range of legacy and modern encodings while preserving JIS X 0213 characters for round-trip workflows on enterprise systems. It targets mainframe and vendor-specific encodings such as CP932X, CP00930, KEIS78/83/90, JEF, JIPS, LetsJ and variants of UTF‑8 including an internal UTF‑8-SPUA-JP form, and provides options to control how single/double-byte regions are detected, whether SI/SO shifting codes are emitted, and what placeholder (GETA) or space bytes to use for unmapped characters. The module is designed to let you exchange JIS X 0213 data between systems and import it back without losing privately mapped characters by using user-defined areas and carefully chosen mappings, but note that true round-trip fidelity requires using the same version of Jacode4e::RoundTrip on both sides of the conversion. Recent updates added extensive multilingual cheatsheets and tests plus a SECURITY.md, reflecting ongoing maintenance and better documentation and test coverage.
Perl logo

Jacode4e

Release | 18 Apr 2026 07:18 AM | Author: INA | Version: 2.13.6.22
Upvotes: 3 | CPAN Testers
Converts Character Encodings for Enterprise in Japan
Jacode4e is a Perl module for converting text between a broad set of Japanese encodings used in enterprise environments, from Microsoft CP932 and its IBM and NEC variants to Shift_JIS-2004, legacy vendor sets like KEIS, JEF, JIPS and LetsJ, plus UTF-8 variants and the module's own CP932X and UTF-8-SPUA-JP. It operates in place via Jacode4e::convert, which takes a scalar reference and explicit input and output encoding names and returns a character count, and it accepts options to describe input layout when SI/SO shift codes are not present, to emit output shifting codes, and to customize space, geta replacement and override mappings for unmapped or private characters. The module is designed to help bridge JIS X 0213 compatibility while keeping existing CP932-based systems, databases and applications usable without wholesale changes. If you require guaranteed round trip preservation there is a companion Jacode4e::RoundTrip module. Recent releases include mapping fixes and added support for utf8.1 and extra CP932 variants and an OVERRIDE_MAPPING option to handle special cases.