What's new on CPAN - July 2024
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
- App::GeometryUtils (PERLANCAR) provides some geometry-related CLI utilities
- Gzip your scripts from the command line to reduce their file size with App::PerlGzipScript (SKAJI)
- App::YtDlpUtils (PERLANCAR) provides Perl wrappers to yt-dlp CLI utilities
- Use an OpenSearch-based searchable store in the Catmandu toolkit with Catmandu::Store::OpenSearch (NJFRANCK)
- Access the Exercises API with Exercises::API (NOBUNAGA)
- Kanboard::API (BARBARITO) provides an interface to the Kanboard API
- Tradestie::WSBetsAPI (NOBUNAGA) gives you access to Tradestie’s stock trading API
Config & Devops
- CVSS (GDT) implements the Common Vulnerability Scoring System (CVSS)
- Bencher::ScenarioBundle::SmartMatch (PERLANCAR) provides benchmarking scenarios for switch & smartmatch implementations
- Scan for Dist::Build dependencies with Perl::PrereqScanner::Scanner::DistBuild (LEONT)
Data
- Data::LnArray::XS (LNATION) provides arrays as objects with methods to manipulate them implemented in XS
- Data::Random::Person (SKIM) generates mock data for person objects
- Substitute variables in a string with Text::Template::Tiny (JV)
- Acme::CPANModules::ModifiedHashes (PERLANCAR) categorizes CPAN modules that modify the behaviour of Perl hashes
- New Sah schemas:
- Sah::SchemaBundle::Country (PERLANCAR) for country codes/names
- Sah::SchemaBundle::Currency (PERLANCAR) for various currencies
- Sah::SchemaBundle::DBI (PERLANCAR) for DBI
- Mask sensitive data faster with String::Mask::XS (LNATION)
- Number::Iterator::XS (LNATION) implements iterating number objects in XS
- Calculate (quickly) the Shannon entropy of a given input string using Shannon::Entropy::XS (LNATION)
Development & Version Control
- Win32::Console::DotNet (BRICKPOOL) gives Win32::Console a .NET compatible API
- Access Windows’ API for recently-accessed files with Win32API::RecentFiles (CORION)
- Send data between processes without blocking with Consumer::NonBlock (EXODIST)
- Dynamically add custom subroutines and methods from other modules to Perl objects with Extender (DOMERO)
- OpenMP (OODLER) brings together Perl’s OpenMP-related distributions for your convenenience
- Use the Eigen C++ library in SPVM with SPVM::Resource::Eigen (KIMOTO)
- Syntax::Operator::Is (PEVANS) provides a match operator using Data::Checks constraints
- Run system commands in a Tk::TextANSIColor widget with Tk::Terminal (HANJE)
Science & Mathematics
- Astro::MoonPhase::Simple (BLIAKO) wraps the functionality of Astro::MoonPhase, adding some parameter checking
- Find and build the GSL shared library with Math::GSL::Alien (HAKONH)
Web
- Use Devel::NYTProf in your Dancer2 application with Dancer2::Plugin::NYTProf (GEEKRUTH)
- Plack::App::Catmandu::SRU (NJFRANCK) is a drop-in replacement for Dancer::Plugin::Catmandu::SRU
- KelpX::Controller (BRTASTIC) makes it more convenient to use a custom controller class in your Kelp app
- Create OpenAPI/Swagger API’s with the Whelk (BRTASTIC) framework
Other
- Audio::Cuefile::Libcue (GREGK) provides an interface to the libcue cuesheet reading library
- Build Slack content using Block Kits with Slack::BlockKit (RJBS)
Tags
Feedback
Something wrong with this article? Help us out by opening an issue or pull request on GitHub