What's new on CPAN - December 2023
Welcome to “What’s new on CPAN”, a curated look at last month’s new CPAN uploads for your reading and programming pleasure. Enjoy!
APIs & Apps
- Use App::CheckPerlReleaseFilename to check whether a filename looks like a Perl module release archive
- App::FoodColorUtils provides command-line utilities related to food colors
- Get info about various scripting language interpreters on your system using App::InterpreterUtils
- Use App::Run::Command::ToFail as a base for your “run-command-to-fail” tool
- Install a module for all the perls installed on your system with App::cpanm::allperls
- App::csvtool provides the main commands for the csvtool wrapper script
- For Rex users, Rex::CMDB::YAMLwithRoles collects and merges data from a set of YAML files to provide a configuration management database
- RT::Extension::SwitchUsers is an RT extension that provides a way to switch the current logged in user to others defined in user custom field “Switch Users Accounts”
Config & Devops
- This month features another slew of Alien modules (Alien finds and builds non-Perl dependencies):
- Alien::Jena::Fuseki for the Jena Fuseki SPARQL server
- Alien::Jena for the Jena semantic web library
- Alien::PlantUML for the PlantUML diagram generator
- Alien::Tarql for Tarql (SPARQL for Tables)
- Alien::YAMLScript for the libyamlscript shared library
- Alien::hdt_java for the hdt-java RDF binary format library
- Alien::pandoc for the pandoc universal document converter
- RPM::Verify runs “rpm -v” on every installed rpm, giving you a descriptive hash of the relevant changes
- Interpreter::Info gets information about various scripting language interpreters installed on your system
Data
- Data::Mirror lessens the pain in retrieving and using remote data sources such as JSON objects, YAML documents, XML instances and CSV files.
- Filename::Perl::Release checks whether a filename looks like a CPAN release tarball
- A new pair of Date::Holidays-based modules:
- Date::Holidays::IE for Irish national holidays until 2025
- Date::Holidays::NYSE for New York Stock Exchange (NYSE) holidays
- Also, a new pair of Graphics::ColorNames-based modules:
- Graphics::ColorNames::FamousLogo for colors used in famous logos
- Graphics::ColorNames::FoodColor for food colors
- Many module-categorizing modules this month:
- Acme::CPANModules::FireDiamond lists modules related to fire diamond (NFPA 704 standard)
- Acme::CPANModules::OrderingAndRunningTasks lists modules/tools to order multiple tasks (with possible interdependency) and running them (possibly in parallel)
- Acme::CPANModules::TableData lists TableData-related modules
- Acme::CPANModules::TemporaryChdir lists modules to change directory temporarily
- Acme::CPANModules::WorkingWithDOC lists modules to work with text document formats (DOC, DOCX, ODT)
- Acme::CPANModules::WorkingWithPDF lists modules to work with Excel formats (XLS, XLSX) or other spreadsheet formats like LibreOffice Calc (ODS)
- Acme::PERLANCAR::Test::Require lists modules to test require()
- TableData::Business::ID::KAN::Client::Lab::Testing uses the TableData specification to house some data about “accredited testing laboratories”
- List words from a WordList module using TableData::WordList
- Parse a Transparency and Consent String with GDPR::IAB::TCFv2
- Rewrite Graph-based graphs with Graph::Grammar
- Music::Dataset::ChordProgressions provides access to hundreds of chord progressions
- Read a file in reverse with IO::Reverse
Development & Version Control
- Represent an HTML textarea tag with Data::HTML::Textarea
- A few new releases to help you benchmark groupings of modules that perform similar tasks:
- Bencher::Scenario::GraphConnectedComponentsModules for graph topological sort modules
- Bencher::Scenario::Interpreters::Startup for scripting language interpreter startup times
- Bencher::Scenario::RandomNumbers for random number-generating modules
- Bencher::Scenarios::Tie for Perl’s tie() mechanism. Tie::Array::NoOp, Tie::Hash::NoOp, Tie::Scalar::NoOp are supporting releases
- Keep Dist::Zilla compatible with Perl’s new class system with Dist::Zilla::Plugin::ExplicitPackageForClass
- For Test::Mojo users, Test::Mojo::Role::OpenAPI::Modern helps you use OpenAPI::Modern to validate requests and responses
- Array::Util::MultiTarget provides functions to perform operations on multiple arrays at once
- TheSchwartz::JobScheduler provides an interface to insert a new job into TheSchwartz job queue (maintained by a database)
- HealthCheck::Diagnostic::SSH verifies SSH connectivity to a specified host
Language & International
- Convert POD to Github-flavored Markdown with Pod::Markdown::Githubert
- Text::MustacheTemplate is a Mustache template engine written in pure Perl
- New extensions for the Perl-based SPVM language:
- SPVM::Eg generates HTML tags
- SPVM::Encode encodes/decodes strings
- SPVM::Getopt::Long parses command-line options
- SPVM::Resource::Utf8proc bundles the utf8proc library
- SPVM::Time::Piece handles dates and times
- SPVM::Unicode::Normalize normalizes UTF-8
- Program in YAML using YAMLScript
- Regexp::CharClasses::Thai supplements the UTF-8 character-class definitions available to regular expressions with special groups relevant to Thai linguistics
Science & Mathematics
- Generate log-uniform random numbers with Math::Random::LogUniform
- CXC::Types::Astro::Coords provides Type::Tiny-compatible types for coordinate conventions used in Astronomy
Web
- Integrate OpenTelemetry into a popular web framework with Dancer2::Plugin::OpenTelemetry, Mojolicious::Plugin::OpenTelemetry and Plack::Middleware::OpenTelemetry
- New plugins for the Dancer2 framework:
- Dancer2::Plugin::JobScheduler sends and queries jobs in different job schedulers
- Dancer2::Plugin::Syntax::GetPost adds syntactic sugar for GET+POST handlers
- New plugins for the Suffit API server, but that may also work with the Mojolicious framework (on which it is apparently based):
- WWW::Suffit::AuthDB provides authorization functionality
- WWW::Suffit::Plugin::BasicAuth provides HTTP basic authentication and authorization
- Common helpers provided in WWW::Suffit::Plugin::CommonHelpers
- Show server and perl environment data WWW::Suffit::Plugin::ServerInfo
- Enable logging via Sys::Syslog with WWW::Suffit::Plugin::Syslog
Other
- Create animation from a sequence of images using ffmpeg with Automate::Animate::FFmpeg
- Model card decks as arrays with Game::Deckar
Tags
Feedback
Something wrong with this article? Help us out by opening an issue or pull request on GitHub