A new distribution a day for CPAN day

My contribution to celebrating CPAN Day this year is releasing at least one new distribution each day in August from day 1 to the culminating 16. Yeah, all of the distros are trivial and most of them classify as crap, but perhaps one or two are crap that you need 🙂 (A large proportion of them do solve my itch.)

Day 1: Perl::Critic::PolicyBundle::PERLANCAR (this currently just contains two policies written originally by HAUKEX who were kind enough to write Perl::Critic policies to solve my itches. Since HAUKEX intends to release them eventually as CPAN distros himself, I do not index the policy packages so when he does upload to CPAN he will not encounter permission problems). Day 2: Module::Load::DiffINC, App::PerlCriticUtils. Day 3: App::LogGerUtils, Log::ger::Screen::ColorSchemes::Kuler, Log::ger::Level::Like::RubyLogging, Log::ger::Level::Like::PythonLogging. Day 4: Log::ger::Plugin::WithWarn (the stack trace is still screwed up). Day 5: App::envset (after having the idea and name, I googled "envset" and it turned up this npm package of the same name and overall functionality; but I wanted to be able to specify multiple sets and I thought writing configuration in IOD format will make it more convenient to specify arrays, do proper quoting, etc so I wrote the Perl version anyway). Day 6: App::DiffTarballs. Day 7: App::DiffCPANReleases (VTI pointed out in a tweet that his depentree.com can also do this, and because of that I got reminded that libraries.io can also do it, albeit only for distros that have github repos). Day 8: Tie::Handle::LogAny, Tie::Handle::LogGer.

Day 9: Text::DumbTemplate. Day 10: App::corruptor, Sah::Schemas::Float, Getopt::Long::EvenLess::Dump. Day 11: Module::CPANfile::FromDistINI (this module was inspired by this post; the module does not solve the problem completely, but it relieves the pain somewhat). Day 12: Text::WordDiff::Unified::ANSIColor, App::diffwc (before writing diffwc, and since writing App::DiffTarballs, I used riff for a few days but it has a few bugs and there is no diff wrapper, only filter; plus a Rubygem-based utility doesn't feel like a typical Unix utility). Day 13: App::diffwc::ColorSchemes::Kuler. Day 14: App::ProveDeps (the prove-deps utility was born out of the need to test the dependents of Log::ger which are many). Day 15: Patch::chdir::Print, DBIx::Connect::MySQL. Day 16: App::finddo.

List of new CPAN distributions – Jul 2017.html

dist author version abstract
A-B PEKINGSAM 0.01 Blah blah blah
AI-PredictionClient STALL 0.01 A Perl Prediction client for Google TensorFlow Serving.
AI-PredictionClient-Alien-TensorFlowServingProtos STALL 0.01 Builds C++ client library for TensorFlow Serving.
Acme-MetaSyntactic-legoworlds BINGOS 0.02 LEGO Worlds theme
Acme-Undead LIKK 0.01 The Undead is not die!
Alias-Any DCONWAY 0.000002 Create lexical aliases under different versions of Perl
Alien-Alien PLICEASE 0.01 Find or use alien package conversion tool
Alien-Base-Dino PLICEASE 0.01 Experimental support for dynamic share Alien install
Alien-Build-Git PLICEASE 0.01 Alien::Build tools for interacting with git
Alien-Build-Plugin-Decode-SourceForge PLICEASE 0.01 Alien::Build plugin to handle SourceForge links
Alien-Build-Plugin-Fetch-Prompt PLICEASE 0.58 Alien::Build plugin to prompt a user before making external download
Alien-Build-Plugin-Fetch-PromptBeforeDownload PLICEASE 0.57 Alien::Build plugin to prompt a user before making external download
Alien-Build-Plugin-Fetch-Rewrite PLICEASE 0.01 Alien::Build plugin to rewrite network requests to local resources
Alien-Build-Plugin-Probe-GnuWin32 PLICEASE 0.57 Probe for GnuWin32 packages using the Windows registry
Alien-Google-GRPC STALL 0.01 Locates installed gRPC library. If not, downloads from Github and does a local install.
Alien-JPCRE2 WBRASWELL 0.001000 Find Or Download/Build/Install libjpcre2 In JPCRE2
Alien-LibUSB ATHREEF 0.2 Perl distribution for LibUSB
Alien-gperf ATHREEF 0.004 Perl distribution for GNU gperf
Alien-gzip PLICEASE 0.03 Find or build gzip
Alien-libudev ATHREEF 0.10 Perl distribution for libudev
AnyEvent-Consul-Exec ROBN 0.001 Execute a remote command across a Consul cluster
AnyEvent-SlackBot AKALINUX 1.0001 AnyEvent Driven Slack Bot Interface
App-AlgorithmDiffUtils PERLANCAR 0.001 CLI utilities based on Algorithm::Diff
App-BrowserOpenUtils PERLANCAR 0.001 Utilities related to Browser::Open
App-ConvertLogAnyToLogGer PERLANCAR 0.001 Convert code that uses Log::Any to use Log::ger
App-Gallery MGV 0.001 Very basic picture gallery
App-Muter BRIANC 0.001000 tool to convert between various formats and encodings
App-Sybil ABERNDT 0.1 Multi platform build and release manager
App-cpanm-perlancar PERLANCAR 0.001 Install modules from CPAN (PERLANCAR's flavor)
App-cpanm-shcompgen PERLANCAR 0.001 Install modules from CPAN (and activate shell completion)
App-cpanminus-script-Patch-Blacklist PERLANCAR 0.001 Blacklist modules from being installed
App-cpanminus-script-Patch-RunShcompgen PERLANCAR 0.001 Run shcompgen after distribution installation
App-cpanminus-script-Patch-UseURIFromFoundMirror PERLANCAR 0.001 Only use URI from mirror where we found the module
App-perlmv-u PERLANCAR 0.001 Rename files using Perl code, with undo/redo
App-rmspaces ATHOS 0.3 an app to remove spaces from file names
Array-Merge-Unique LNATION 0.01 Merge those arrays uniquely
Bencher-Scenario-ArraySamplePartition PERLANCAR 0.001 Benchmark Array::Sample::Partition hash
Bencher-Scenarios-AlgorithmDiff PERLANCAR 0.001 Scenarios to benchmark Algorithm::Diff
Bencher-Scenarios-FileFlockRetry PERLANCAR 0.001 Scenarios to benchmark File::Flock::Retry
Biblio-SIF NKUITSE 0.01 Voyager ILS SIF file operations
Bio-SeqHash PEKINGSAM 0.1.0 get one or more sequences from a FASTA file quickly.
BioX-SeqHash PEKINGSAM 0.1.1 get one or more sequences from a FASTA file quickly.
Bioinfo PEKINGSAM 0.1.1 my perl module and CLIs for Biology
Business-OnlinePayment-iTransact BGERRARD 1.00 iTransact backend module for Business::OnlinePayment
CHI-Driver-Cache-RedisDB INSPIRE 0.01 CHI Driver for Cache::RedisDB
CLI-Osprey ARODLAND 0.01 MooX::Options + MooX::Cmd + Sanity
CSVAWK BRYMCK 0.0.1 Pass CSV files to AWK.
Calendar-Hebrew MANWAR 0.01 Interface to Hebrew Calendar.
Calendar-Julian MANWAR 0.01 Interface to Julian Calendar.
Catalyst-View-XLSX BASKARN 1.0 Catalyst View for Microsoft Excel (XLSX) file
Catmandu-Importer-PDF NJFRANCK 0.01 Catmandu importer to extract data from one pdf
Catmandu-Pure BRIEM 0.01 A bundle of Catmandu modules for working with data from Pure
Code-TidyAll-Plugin-YAMLFrontMatter MAXMIND 1.000000 TidyAll plugin for validating YAML Front Matter
CrawlerCommons-RobotRulesParser AKROBINSN 0.01 unit test for …
Data-Edit-Xml-Lint PRBRENAN 2017.714 Lint an xml file using xmllint
Data-Queue AKALINUX 1.0001 Order/Unordered stack
Data-Result AKALINUX 1.0001 Handling true and false in a better way!
Database-Async-SQLite TEAM 0.001 SQLite support for IO::Async
Date-Hebrew-Simple MANWAR 0.01 Represents Hebrewn date.
Date-Julian-Simple MANWAR 0.01 Represents Julian date.
Date-Lectionary-Daily MARMANOLD 1.20170703 Date::Lectionary::Daily – Daily Readings for the Christian Lectionary
Devel-End-PrintINC PERLANCAR 0.001 Print @INC and %INC when program ends
Devel-IPerl-Plugin-Chart-Plotly PABLROD 0.001 Inline display of plotly charts in Jupyter notebooks using Devel::IPerl kernel
Dir-ls DBOOK 0.001 List the contents of a directory
Dist-Zilla-Plugin-AuthorSignatureTest MSCHOUT 0.01 An Author Distribution SIGNATURE Test for Dist::Zilla
Dist-Zilla-Plugin-AuthorsFromGit AKHUETTEL 0.001 Add per-file per-year copyright info to each Perl document
Evented-API-Engine COOPER 4.07 Evented API Engine for Perl applications
File-Feed NKUITSE 0.03 gather files from an FTP server or other source
File-ShareDir-Dist PLICEASE 0.03 Locate per-dist shared files
GPS-Track GHANDI 0.01 Perl extension for parsing GPS Tracks
Geo-GNS-Parser BKB 0.01 parse a GNS data file
GraphViz-Diagram-ClassDiagram RENE 0.01 Create class diagrams with graphviz.
GraphViz-Graph RENE 0.01 Object Oriented interface to graphviz.
Graphics-TIFF RATCLIFFE 1 Perl extension for the libtiff library
HTTP-MultiGet AKALINUX 1.001 Run many http requests at once!
HTTP-Tiny-Patch-LogGer PERLANCAR 0.001 Log HTTP::Tiny with Log::ger
Hash-Merge-Extra MIXAS 0.01 Collection of extra behaviors for Hash::Merge
JavaScript-Any TOBYINK 0.001 evaluate some javascript using the best available Javascript implementation
JsonSQL HOEFLERB 0.4 Defines a JSON format to represent SQL queries which can be validated and then used to generate SQL syntax.
Lab-Measurement-DocWriter AKHUETTEL 0.990 Documentation formatting for Lab::Measurement
LinAlg-Vector SSTEFFL 0.01 Extensive vector library based on Moose class system.
Log-LogMethods AKALINUX 1.001 Writes your logging code for you!
Log-ger-App PERLANCAR 0.001 An easy way to use Log::ger in applications
Log-ger-Like-Log4perl PERLANCAR 0.001 Mimic Log::Log4perl
Log-ger-Output-ArrayRotate PERLANCAR 0.001 Log to array, rotating old elements
Log-ger-Output-Callback PERLANCAR 0.001 Send logs to a subroutine
Log-ger-Output-Perl PERLANCAR 0.001 Log to Perl's standard facility (warn, die, etc)
Log-ger-Output-SimpleFile PERLANCAR 0.001 Send logs to file
Log-ger-Output-Syslog PERLANCAR 0.001 Send logs to syslog
MARC-Indexer NKUITSE 0.03 index MARC records
MARC-Matcher NKUITSE 0.02 MARC record matcher
MARC-Xform NKUITSE 0.02 MARC record transformations
MailboxValidator-SingleValidation MBV 1.00 Email verification module for Perl using MailboxValidator API. It validates if the email is valid, from a free provider, contains high-risk keywords, whether it's a catch-all address and so much more.
Manta-Client ANDREWH 0.0
Maplat-Array-Unique CAVAC 2.7 make all Array elements unique
MariaDB-NonBlocking HUGMEIR 0.01 Nonblocking connections to MySQL using libmariadbclient
Module-Load-In-INIT PERLANCAR 0.001 Load modules in INIT phase
Mojo-GoogleAnalytics JHTHORSEN 0.01 Extract data from Google Analytics using Mojo UserAgent
Mojo-Log-Colored SIMBABQUE 0.01 Colored Mojo logging
Mojo-UserAgent-Cached NICOMEN 1.06 Caching, Non-blocking I/O HTTP, Local file and WebSocket user agent
Mojolicious-Plugin-Check RSHADOW 0.01 Mojolicious plugin for controller level conditions.
MooseX-DIC LPRIETO 0.1.0 A dependency injector container for Moose
MooseX-Final TOBYINK 0.001 mark a class as "final" (cannot be inherited from)
Neo4j-Cypher-Abstract MAJENSEN 0.1000 Generate Cypher queries in Perl
Net-Amazon-DynamoDB-Marshaler SCALDWELL 0.01 Translate Perl hashrefs into DynamoDb format and vice versa.
Number-MuPhone CHOLLOWAY 0.01 phone number parsing and display
Nuspec-Reader TYNOVSKY 0.1.0 Parse .nuspec file and get access to different parts.
OpenSSH-Fingerprint ORANGE 0.01 The great new OpenSSH::Fingerprint!
OptionHash DRAXIL 0.1.0 Checking of option hashes
PDF-Builder PMPERRY 3.004 Facilitates the creation and modification of PDF files
PGObject-Util-PGConfig EINHVERFR 0.010002 Postgres Configuration Management
PGObject-Util-Replication-Master EINHVERFR v0.01 Manage Database Masters
PGObject-Util-Replication-SMO EINHVERFR 0.01 Replication Server Management Objects!
PGObject-Util-Replication-Slot EINHVERFR 0.010002 Manage and Monitor Replication Slots
PGObject-Util-Replication-Standby EINHVERFR 0.01 Manage PG replication standbys
Params-Check-Item SSTEFFL 0.01 checks the type or value of an item at any point during execution
Paws-Net-MultiplexCaller JLMARTIN 0.01 Control routing of services to Paws callers
PawsX-DynamoDB-DocumentClient SCALDWELL 0.01 a simplified way of working with AWS DynamoDB items that uses Paws under the hood.
PawsX-FakeImplementation-Instance JLMARTIN 0.01 A Paws extension to help you write fake AWS services
Pg-Queue RMZG v1.0 Simple SKIP LOCKED based Queue for Postgresql
Physics-Ballistics TTKCIAR 1.00 Ballistics formulae
PrimerView HALLORAN 3.0 batch and single primer sequence maps
RL JACOBG 0.01 Perl interface to the readline library
RPi-Const STEVEB 1.02 Constant variables for RPi::WiringPi
RPi-Serial STEVEB 0.01 Basic read/write interface to a serial port
RT-Authen-Token BPS 0.01 RT-Authen-Token Extension
RT-Extension-REST2 BPS 1.00 Adds a modern REST API to RT under /REST/2.0/
ReadLine JACOBG 0.01 Perl interface to the readline library
Renard-Incunabula ZMUGHAL 0.003 The base library for Project Renard
Renard-Incunabula-Format-PDF ZMUGHAL 0.003 Provides a Document and Page for PDF files.
Renard-Incunabula-Frontend-Gtk3 ZMUGHAL 0.003 Provides helpers for dealing with Gtk3 code
Renard-Incunabula-MuPDF-mutool ZMUGHAL 0.003 Retrieve PDF image and text data via MuPDF's mutool
SVG-Timeline DAVECROSS v0.0.1 Program to draw an SVG timeline diagram from events defined in a file
SVG-TrafficLight DAVECROSS v0.0.1
Set-SegmentTree DAVIDIAM 0.01 Immutable segment trees with flatbuffers in perl
Sort-filevercmp DBOOK 0.001 Sort version strings as in GNU filevercmp
String-Elide-FromArray PERLANCAR 0.001 Truncate string containing list of items
Test2-Plugin-FauxHomeDir PLICEASE 0.01 Setup a faux home directory for tests
Test2-Tools-URL PLICEASE 0.01 Compare a URL in your Test2 test
TestML-Bin INGY 0.01 Bin Script for TestML
Text-Names-GB NHORNE 0.01 Perl extension for proper name parsing, normalization, recognition, and classification
Tie-FileSection XLAT 0.171852 restrict files sequential access using array like boundaries
Time-Moment-Ext DSHADOW 0.02 Extend Time::Moment with strptime and SQL dates support
Type-Simple NFERRAZ 0.01 simple type validation system for Perl
Udev-FFI ILUX 0.097000 Perl bindings for libudev using ffi.
WWW-RiotGames-LeagueOfLegends ARCANEZ 0.0001 Perl wrapper around the Riot Games League of Legends API
WebService-CastleIO DSIMONE 1.00 Castle.io API client
WebService-IFConfig-Client NICDOYE 0.003 Client for Martin Polden's https://ifconfig.co
colorize-stderr PERLANCAR 0.001 Colorize STDERR
exact GRYPHON 1.00 Perl pseudo pragma to enable strict, warnings, features, mro, filehandle methods
libdate-holidays-nz-perl HNEWPORT 1.02 Determine New Zealand public holidays
monkeypatch PERLANCAR 0.001 Monkeypatch your Perl code on the command-line
nagios-nrpe MICKE v1.0.1 A Nagios NRPE implementation in pure perl

Introducing Log::ger

Yesterday more or less completed the migration of my CPAN modules from using Log::Any to Log::ger. Sorry for the noise in the releases news channels due to the high number of my CPAN modules (particularly to Chase Whitener).

I did not have anything against Log::Any, to be honest. It was lightweight and so easy to use in modules as it encourages separation of log producers and consumers. Sure, I wish Log::Any had some features that I want but I was okay with using it for all my logging needs.

Until Log::Any 1.00 came along in late 2014, when its startup overhead jumped from ~2ms (version 0.15) to ~15ms. The new version ballooned from just loading strict, warnings, and Log::Any::Adapter::Null to over a dozen modules. Later versions of Log::Any improve somewhat on the startup overhead front but after the introduction of Log::Any::Proxy I thought it probably will not get back to the previous lightweight level. So I planned to write a more lightweight alternative along with probably implementing my wishlist. But this would require some time and in the mean time I wrote a hackish workaround called Log::Any::IfLOG that will load Log::Any only if environment variable like LOG or DEBUG or TRACE is set to true. I hated that workaround and regretted having created it.

By the way, why do I fuss over a few milliseconds? My major interest in using Perl is for building CLI applications. I am simply annoyed if my CLIs show a noticeable (~50-100ms or more) delay before responding with output (major offenders include Moose-based CLIs like dzil) when the fact is that Perl can be much more responsive than that. Log::Any is but one of several (sometimes many) modules I must load in a CLI so if a few ms is added here and a few more there, it could quickly add up. Also my CLIs feature shell tab completion and this is implemented by running the CLIs themselves for getting the completion answers so I always prefer responsive CLIs.

The recent Eid al-Fitr holiday finally made it possible for me to write a replacement for Log::Any: Log::ger in the course of a couple of weeks, along with all the log outputs and plugins to match all the features that I needed. So in what ways is Log::ger different than Log::Any or the other logger libraries?

First of all, for the low startup overhead goal, I've managed to keep use Log::ger having an overhead of just 0.5-1ms (without loading any extra modules). This is even less than use warnings and certainly less than use Log::Any (8-10ms) or the much heavier use Log::Log4perl ':easy' (35ms). This means, adding logging with Log::ger to your modules now incurs a negligible startup overhead. You can add logging to most of your modules without worrying about startup overhead.

What about null-logging (stealth-logging) overhead? Log::ger also manages to be the fastest here. It's about 1.5x faster than Log::Any, 3x faster than Log4perl, and 5x faster than Log::Fast (included here because the name claims something about speed). This is thanks to using procedural style logging (log_warn("foo")) instead of OO ($log->warn("foo")) and just using an empty subroutine sub {0} as the null default. If you don't want that tiny runtime overhead too, you can eliminate it with Log::ger::Plugin::OptAway. This plugin uses some B magic to turn your logging statements into a constant so they are removed during run-time.

As a bonus, due to the modular and flexible design of Log::ger, you can also: log using OO-style, use Log::Any style (method names and formatting rule), use Log::Log4perl style (method names and formatting rule), use Log::Contextual style (block style), or mimic other interface that you want. And mix different styles in different modules of your application. And as another bonus, writing a Log::ger output is also simpler and significantly shorter than writing a Log::Any adapter. Compare Log::Any::Adapter::Callback with Log::ger::Output::Callback, or Log::Any::Adapter::Syslog with Log::ger::Output::Syslog.

To keep this post short, instead of explaining how Log::ger works or the details of its features here I welcome you to look at the documentation.

csv-grep (and App::CSVUtils)

Today I decided to add csv-grep to App::CSVUtils, as an alternative to NEILB's csvgrep (which Neil announced about a week ago). I find csvgrep too simplistic for my taste or future needs. It's basically equivalent to:

% ( head -n1 FILE.CSV; grep PATTERN FILE.CSV ) | csv2asciitable

I also think csvgrep's -d option does not belong. It's not relevant to grepping as well as too case-specific. What if user wants the oldest file in the directory? The biggest? The find or ls command should be able to do that for you:

% csvgrep PATTERN "`ls *.csv –sort=t | head -n1`"

In csv-grep, you specify Perl code instead of regex pattern. Your Perl code receives the CSV row in $_ as an arrayref (or hashref, if you specify -H). So you can filter based on some particular fields and use the full expressive Power of Perl. csv-grep outputs CSV, but you can convert it to other formats by the abovementioned csv2asciitable, or to JSON with csv2json, or to Perl data structure with csv2dd, or what have you.

Aside from csv-grep, App::CSVUtils also includes a bunch of other CSV utilities which I wrote when I needed to munge CSV files a few months back. Check it out.

List of new CPAN distributions – Jun 2017.html

dist author version abstract
Acme-Globus JACOBY 0.001 Interface to the Globus research data sharing service
Acme-OCEORA-Utils OCEORA 0.01 The great new Acme::OCEORA::Utils!
Algorithm-History-Levels PERLANCAR 0.001 Group histories into levels
Alien-HIDAPI ATHREEF 0.01 Perl distribution for HIDAPI
Alien-PCRE2 WBRASWELL 0.001000 Find Or Download/Build/Install libpcre2 In PCRE2
Alien-autoconf PLICEASE 0.01 Build or find autoconf
Alien-automake PLICEASE 0.01 Build or find automake
Alien-libtool PLICEASE 0.01 Build or find libtool
Alien-libuv CAPOEIRAB 0.001 Interface to the libuv library http://libuv.org
AnyEvent-Impl-Prima CORION 0.01 Prima event loop adapter for AnyEvent
App-BlockWebFlooders PERLANCAR 0.001 Block IP addresses of web flooders using iptables
App-BorgRestore BLUEWIND 2.0.0 Restore paths from borg backups
App-ListNewCPANDists PERLANCAR 0.001 List new CPAN distributions in a given time period
App-Manoc GMAMBRO 2.99.2 Network monitoring application
App-TrimHistories PERLANCAR 0.001 Keep only a certain number of sets of file histories, delete the rest
App-html2wp PERLANCAR 0.001 Publish HTML document to WordPress as blog post
App-tailswitch PERLANCAR 0.001 Tail a file, but switch when another file with newer name appears
Array-2D AARONRP 0.001_001 Methods for simple array-of-arrays data structures
Array-Sample-Partition PERLANCAR 0.001 Sample elements from an array by equal partitions
Array-Sample-SysRand PERLANCAR 0.001 Systematic random sampling from an array
Async-Stream KSYSOEV 0.02 it's convinient way to work with async data flow.
Authen-Passphrase-Scrypt MGV 0.001 passphrases using Tarsnap's scrypt algorithm
Authen-TuringImage HASH 1.005 Simple image based Turing test (CAPTCHA)
Batch-Interpreter STRCMP 0.01 interpreter for CMD.EXE batch files
Bencher-Scenario-Glob PERLANCAR 0.001 Benchmark glob()
Bencher-Scenario-HashUnique PERLANCAR 0.001 Benchmark Hash::Unique
Bencher-Scenarios-LogGer PERLANCAR 0.001 Scenarios for benchmarking Log::ger
Bencher-Scenarios-SPVM PERLANCAR 0.001 Benchmark SPVM
Business-HashCash HASH 1.003 Accept HashCash payments online
CHI-Driver-Reddit DFARRELL 0.01 use Reddit as a cache!
CPAN-Reporter-Smoker-OpenBSD ARFREITAS 0.007 set of scripts to manage a CPAN::Reporter::Smoker on OpenBSD
Catmandu-WoS NICS 0.01 Catmandu modules to work with the Web Of Science web services
Code-TidyAll-Plugin-YAPF OALDERS 0.000001 Code::TidyAll plugin to tidy Python code via yapf
Crypt-ECDSA-Blind HASH 1.014 Blind ECDSA Signatures
Crypt-EC_DSA HASH 1.007 Elliptic Curve Digital Signature Algorithm
Crypt-EECDH HASH 1.004 Simple ephemeral ECDH + AES hybrid cryptosystem
Crypt-FDH HASH 1.008 Full Domain Hash
Crypt-HashCash HASH 1.115 HashCash Digital Cash
Crypt-RSA-Blind HASH 1.009 Blind RSA signatures
Crypt-Unsnoopable HASH 1.005 Completely unsnoopable messaging
Cuckoo-Filter KEND v0.0.1 Cuckoo Filter implementation in perl
DBIx-Class-DeploymentHandler-VersionStorage-WithSchema ALTREUS 0.001 Version storage for DeploymentHandler that includes the schema
Data-Dx DCONWAY 0.000002 Dump data structures with name and point-of-origin
Data-MessagePack-Types MOZNION 0.01 Utility of value type for Data::MessagePack
Date-Extract-PERLANCAR PERLANCAR 0.001 Extract probable dates from strings
Device-HID ATHREEF 0.001 Perl Interface to HIDAPI
Dir-Write-Rotate PERLANCAR 0.001 Write files to a directory, with rotate options
Dist-Zilla-Plugin-SlackNotify SLEUNG 0.001 Publish a notification on Slack after release
Dist-Zilla-Plugin-Test-Perl-Critic-Freenode COFFEE 0.001 Tests to check your code against policies inspired by #perl on Freenode
English-Control AARONRP 0.001_001 use names beginning with control for punctuation variables
File-DirObject RORYRJB 0.0.1 traverse directories with methods
Finance-GDAX-API SEATEK 0.01 Build and sign GDAX REST request
Geo-Compass-Variation STEVEB 0.01 Accurately calculate magnetic declination and inclination
GooCanvas2 PERLMAX 0.04 Perl binding for GooCanvas2 widget using Glib::Object::Introspection
Graphics-Fig SCOOTER 1.00 xfig library
HTML-Template-Nest TOMGRACEY 0.01 manipulate a nested html template structure via a perl hash
Hash-GuavaRing KTL 0.01 Consistent ring hashing using guava hash
Hash-Unique MATZ 0.01 It's new $module
IPC-Queue-Duplex HASH 1.004 Filesystem based request / response queue
IPC-Serial HASH 1.006 Simple message passing over serial ports
JIP-Debug VLADIMIRZ 0.999_001 provides a convenient way to attach debug print statements anywhere in a program.
Lazy-Util COFFEE 0.001 Perl utilities for lazy evaluation
List-Flat AARONRP 0.001_002 Functions to flatten a structure of array references
List-Haystack MOZNION 0.01 A immutable list utility to find element
Log-Any-Adapter-LogGer PERLANCAR 0.001 Send Log::Any logs to Log::ger
Log-Log4perl-Appender-Graylog DIMENTOX 0.01 Log dispatcher writing to udp Graylog server
Log-Report-Template MARKOV 0.10 template toolkit with translations
Log-ger PERLANCAR 0.001 A lightweight, flexible logging framework
Log-ger-DBI-Query PERLANCAR 0.001 Log DBI queries (and results)
Log-ger-For-Class PERLANCAR 0.001 Add logging to class
Log-ger-For-LWP PERLANCAR 0.001 Add logging to LWP
Log-ger-Format-Block PERLANCAR 0.001 Use formatting using block instead of sprintf-style
Log-ger-Format-Flogger PERLANCAR 0.001 Use String::Flogger for formatting instead of sprintf
Log-ger-Format-Sprintfn PERLANCAR 0.001 Use Text::sprintfn for formatting instead of sprintf
Log-ger-Layout-JSON PERLANCAR 0.001 Layout log message as a JSON object (hash)
Log-ger-Layout-LTSV PERLANCAR 0.001 Layout log message as LTSV
Log-ger-Layout-Pattern PERLANCAR 0.001 Pattern layout
Log-ger-Layout-YAML PERLANCAR 0.001 Layout log message as a YAML
Log-ger-LevelFromEnv PERLANCAR 0.001 Set default log level from some environment variables
Log-ger-Like-LogAny PERLANCAR 0.001 Log like Log::Any
Log-ger-LogAny PERLANCAR 0.001 Send log to Log::Any
Log-ger-Manual PERLANCAR 0.005 Manual for Log::ger
Log-ger-OptAway PERLANCAR 0.001 Optimize away higher-level log statements
Log-ger-Output-ArrayWithLimits PERLANCAR 0.001 Log to array, with some limits applied
Log-ger-Output-Composite PERLANCAR 0.001 Composite output
Log-ger-Output-DirWriteRotate PERLANCAR 0.001 Log to Dir::Write::Rotate
Log-ger-Output-File PERLANCAR 0.001 Send logs to file
Log-ger-Output-FileWriteRotate PERLANCAR 0.001 Log to File::Write::Rotate
Log-ger-Output-LogAny PERLANCAR 0.002 Send log to Log::Any
Log-ger-Output-LogDispatchOutput PERLANCAR 0.001 Send logs to a Log::Dispatch output
Log-ger-Output-Screen PERLANCAR 0.003 Output log to screen
Log-ger-Plugin-OptAway PERLANCAR 0.003 Optimize away higher-level log statements
Log-ger-Plugin-SingleLog PERLANCAR 0.001 Create a log($LEVEL, …) subroutine/method
Log-ger-UseDataDump PERLANCAR 0.001 Use Data::Dump to dump data structures
Log-ger-UseDataDumpColor PERLANCAR 0.001 Use Data::Dump::Color to dump data structures
Logfile-Tail-Switch PERLANCAR 0.001 Tail a file, but switch when another file with newer name appears
Mail-BIMI MBRADSHAW 1.20170624 BIMI parser
Mail-Exim-MainLogParser RGLAUE 0.01 Parse log lines from the Exim Main Log
Math-Logic-Ternary MHASCH 0.003 ternary logic and related operations
Method-Signatures-PP MSTROUT 0.000001 EXPERIMENTAL pure perl method keyword
Minion-Command-minion-version BFAIST 0.01 Minion version command
Module-CheckDep-Version STEVEB 0.01 List prereqs that need a version bump for an author's distributions
Mojolicious-Plugin-Pager JHTHORSEN 0.01 Pagination plugin for Mojolicious
Mojolicious-Plugin-PgURLHelper LDIDRY 0.01
Mojolicious-Plugin-StaticCache LDIDRY 0.01 Mojolicious::Plugin::StaticCache – Mojolicious Plugin which add a Control-Cache header to each static file served by Mojolicious.
Mojolicious-Plugin-Template-Mustache CYNOVG 0.01 Mojolicious Plugin
Mojolicious-Plugin-Text-Caml CYNOVG 0.01 Mojolicious Plugin
Monitoring-Icinga2-Client-REST THESEAL v2.0.0 REST integration with icinga2
MooX-Locale-TextDomain-OO REHSACK 0.001 provide API used in translator modules without translating
MooseX-Getopt-Kingpin JASEI 0.1.0 A Moose role for processing command lines options via Getopt::Kingpin
Moxie STEVAN 0.01 Not Another Moose Clone
Net-Async-Slack TEAM 0.001 Slack realtime messaging API support for IO::Async
Net-ZooIt SUBOGERO 0.1 High level recipes for Apache Net::ZooKeeper
PHP-Functions-Password CMANLEY 1.01 This module provides ported PHP password functions.
PPIx-Utils DBOOK 0.001 Utility functions for PPI
PPR DCONWAY 0.000003 Pattern-based Perl Recognizer
Perl6-Controls DCONWAY 0.000002 Add Perl 6 control structures as Perl 5 keywords
Plack-Middleware-Auth-JWT DOMM 0.900 Token-based Auth (aka Bearer Token) using JSON Web Tokens (JWT)
Plack-Session-Store-RedisFast AKZHAN 0.01 Redis session store.
Printer-ESCPOS-PDF DSONNTAG 0.001 a hacky drop-in replacement for redirect Printer::ESCPOS output to a PDF file instead of a printer
RPi-I2C STEVEB 2.3601 Interface to the I2C bus on the Raspberry Pi
RT-Extension-RichtextCustomField GIBUS 0.01 RT-Extension-RichtextCustomField Extension
RabbitMQ-Consumer-Batcher JASEI 0.1.0 batch consumer of RMQ messages
Rapi-Blog VANSTYN 1.0000 RapidApp-powered blog
SPVM KIMOTO 0.01 Fast calculation, GC, static typing, VM with perlish syntax
SPVM-Examples PERLANCAR 0.001 SPVM examples
Sah-Schemas-Date PERLANCAR 0.001 Sah schemas related to date
Sledge-Plugin-Private TANIGUCHI 0.01 plugin to add private HTTP response
TAP-Harness-BailOnFail GRAY 0.001 Bail on remaining tests after first failure
Telegram-CamshotBot PAVELSR 0.01 Telegram bot that send you a snapshot from IP camera using ffmpeg (don't forget to install it!)
Template-Compiled TOBYINK 0.001 templates which compile into coderefs
Template-Provider-Pandoc DAVECROSS v0.0.1
Test-Compiles TOBYINK 0.001 tests if perl can compile a string of code
Test-DB-Shared JETEVE 0.001 Share DB cluster instance accross processes for faster tests
Test-Expr DCONWAY 0.000002 Test an expression with better error messages
Test2-Plugin-SourceDiag EXODIST 0.000001 Output the lines of code that resulted in a failure.
Text-CaboCha CODEHEX 0.01 Alternate Interface To libcabocha
Text-Prefix TTKCIAR 1.00 Read from stdin and write to stdout with additional useful information prefixed to each line.
Text-Summarizer FAELIN 0 Extract Repeated Phrases from Text
Text-Summarizer-0 FAELIN 0 Extract Repeated Phrases from Text
Text-Xslate-Bridge-TypeDeclaration POKUTUNA 0.01 A Mouse-based Type Validator in Xslate.
Tie-Array-Expire PERLANCAR 0.001 Array with expiring elements
Tie-Handle-TailSwitch PERLANCAR 0.001 Tie to Logfile::Tail::Switch
Twitter-Queue DFARRELL 0.01 the micro blogging framework FIFO queue
URI-tcp JASEI 0.1.0 tcp connection string
UV-Util CAPOEIRAB 0.001 Some utility functions from libUV.
WWW-Mechanize-Chrome CORION 0.01 automate the Chrome browser
WWW-Zotero-Write RAPPAZF 0.01 Perl interface to the Zotero Write API
Web-Request-Role-JWT DOMM 1.000 Accessors for JSON Web Token (JWT) stored in psgix
WebService-BR-Vindi DLIMA 0 Perl low level implementation of the https://vindi.com.br brazilian payment gateway.
WebService-CoinSpot DJZORT 0.001 Perl API for CoinSpot API
Win32-Ldd SALVA 0.01 Track dependencies for Windows EXE and DLL PE-files
csvgrep NEILB 0.01 search for patterns in a CSV and display results in a table
fastQ_brewv HALLORAN 1.0.3 Provides methods for fastQ file manipulation
lib-relative DBOOK 0.001 Add paths relative to the current file to @INC
spamcup-ng ARFREITAS 0.4 module to export functions for spamcup program
spamcupNG ARFREITAS 0.4 module to export functions for spamcup program

Upgrading to perl 5.26

This morning I decided to purge my 5.24 installation on my development PC and move to 5.26. Bad mistake. Many distributions still fail to build without PERL_USE_UNSAFE_INC=1, I might as well put the environment on my ~/.bashrc. These are the ones that hit me (after a few of these, I just built with PERL_USE_UNSAFE_INC=1): Compiler::Lexer (GOCCY), OrePAN (TOKUHIROM), Task::Weaken (ADAMK), Test::SubCalls (ADAMK), Test::Object (ADAMK), Term::Encoding (MIYAGAWA). Apparently, for many of these dists tickets/issues have been posted since 3 months ago but the authors/maintainers have simply not responded. Many authors have perhaps moved on to greener pastures, we need more adopters.

List of new CPAN distributions – May 2017

dist author version date abstract
AI-XGBoost PABLROD 0.001 2017-05-29T19:06:04 Perl wrapper for XGBoost library https://github.com/dmlc/xgboost
Acme-DotDotGone LNATION 0.01 2017-05-21T16:33:02 The great new Acme::DotDotGone!
Acme-Helloworld TOMCHA 0.01 2017-05-27T03:16:27 output 'Hello, world'
Acme-Study-perl NEILB 1.00 2017-05-11T13:35:15 turns baubles into trinkets
Acme-Testing-Permissions BOOK 0.001 2017-05-31T07:49:51 Test target for PAUSE permissions
Acme-Want5000trillion ANATOFUZ 0.01 2017-05-31T14:46:00 I want 5000trillion yen.
Alien-LibBigWig AYATES v0.3.3 2017-05-11T10:52:42 Installation of libBigWig for Perl
Alien-XPA DJERIUS 0.01 2017-05-12T21:14:48 Find or Build libxpa
AnyEvent-Net-MPD JJATRIA 0.001 2017-05-29T11:57:29 A non-blocking interface to MPD
App-Aliyun FAYLAND 0.01 2017-05-11T10:28:03 Aliyun Command Tools
App-CISetup DROLSKY 0.01 2017-05-26T16:48:34 Command line tools to generate and update Travis and AppVeyor configs for Perl libraries
App-DumpChromeHistory PERLANCAR 0.001 2017-05-30T10:33:44 Dump Chrome history
App-DumpOperaHistory PERLANCAR 0.001 2017-05-30T10:30:55 Dump Opera history
App-EvalServerAdvanced SIMCOP 0.001 2017-05-27T02:14:18 A more featured update to App::EvalServer
App-EvalServerAdvanced-Protocol SIMCOP 0.100 2017-05-26T21:14:11 Protocol abstraction for App::EvalServerAdvanced
App-EvalServerAdvanced-REPL SIMCOP 0.001 2017-05-26T23:02:41 Example client for App::EvalServerAdvanced
App-ExtractLinks RORYRJB 0.0.1 2017-05-29T14:01:58 extract href's in HTML docs to stdout
App-Git-Autofixup TORBIAK 0.001 2017-05-25T11:13:16 create fixup commits for topic branches
App-Repo ZDENEK 0.11 2017-05-09T16:40:56 create debian repository
App-TOMLUtils PERLANCAR 0.001 2017-05-09T12:49:14 TOML utilities
App-btcindo PERLANCAR 0.001 2017-05-31T12:39:16 CLI for bitcoin.co.id
App-dt PERLANCAR 0.001 2017-05-18T08:35:39 CLI data transformer
App-nodie ORKUN 1.00 2017-05-29T22:05:00 runs immortal processes
App-unicomb PERLANCAR 0.001 2017-05-04T09:28:52 Produce Unicode character with combining character
Beam-Service PREACTION 0.001 2017-05-05T05:01:51 Role for services to access Beam::Wire features
Bencher-Scenario-SortHashKeys PERLANCAR 0.001 2017-05-23T23:37:34 Benchmark Sort::HashKeys
Bencher-Scenario-TOMLParsingModules PERLANCAR 0.001 2017-05-09T12:49:25 Benchmark TOML parsing modules
Benchmark-Featureset-ParamCheck TOBYINK 0.001 2017-05-15T18:25:13 compare different parameter validation modules
Bio-DB-Big AYATES v1.0.0 2017-05-11T10:54:09 Perl interface to bigWigLib for accessing the kent big formats
BlankOnDev YUSRIDEB 0.1000 2017-05-31T00:53:26 BlankOnDev – Several Development tools for BlankOn GNU/Linux.
CPAN-Testers-Backend PREACTION 0.001 2017-05-13T10:10:11 Backend processes for CPAN Testers data and operations
CPAN-Uploader-Tiny SKAJI v0.0.1 2017-05-13T16:52:47
CPP-panda-lib SYBER v1.0.0 2017-05-11T12:59:24 Collection of useful functions and classes for C++.
Catalyst-Model-Data-MuForm JJNAPIORK 0.001 2017-05-26T00:32:10 Model adaptor for Data::MuForm
Catalyst-Plugin-BootstrapAlert CAGAO 0.20 2017-05-03T22:21:33 Replacement for Catalyst::Plugin::StatusMessage inline with Bootstrap alert names (success, info, warning, and danger).
CloudCron JLMARTIN 0.02 2017-05-18T14:50:56 A simple distributed cloud friendly cron for the masses
CloudCron-Worker JLMARTIN 0.02 2017-05-18T14:51:08 A worker process for CloudCron
CloudDeploy JLMARTIN 1.05 2017-05-18T09:34:52 A toolkit for building and managing AWS CloudFormation stacks
Data-Faker-Colour MGV 0.001 2017-05-31T15:09:54 Generate random colours
Date-Holidays-BY BESINT 0.2017.0 2017-05-30T09:39:01 Determine Belorussian official holidays and business days.
Devel-Jemallctl TVDW 0.01 2017-05-23T15:39:05 Insight into what Jemalloc is doing
Device-PaloAlto-Firewall PUGLET 0.01 2017-05-02T11:36:31 Interact with the Palo Alto firewall API
Dist-Zilla-Plugin-EnsureLatestPerl ETHER 0.001 2017-05-12T08:29:29 Ensure the author is releasing using the latest Perl
Dist-Zilla-Plugin-UseUnsafeInc ETHER 0.001 2017-05-13T12:11:54 Indicates the value of PERL_USE_UNSAFE_INC to use during installation
ElasticEmail ELASTICML 0.01 2017-05-17T11:35:18 The great new ElasticEmail!
File-PCAP MAMAWE v0.0.4 2017-05-04T08:53:16 a pure Perl library to read and write PCAP files
FileDirUtil MTW v0.01 2017-05-15T14:47:03 A Moose Role for basic File IO
Finance-BTCIndo PERLANCAR 0.001 2017-05-31T10:42:46 Trade with bitcoin.co.id (VIP) using Perl
GPSD-Parse STEVEB 0.01 2017-05-17T00:30:32 Parse, extract use the JSON output from GPS units
Geo-Coder-CA NHORNE 0.01 2017-05-09T21:44:45 Get data from http://geocoder.ca
Geo-Coder-XYZ NHORNE 0.01 2017-05-11T22:33:18 Provides a geocoding functionality using http:://geocoder.xyz
Geo-OSM-Imager FIREDRAKE 0.02 2017-05-04T10:56:01 simplifies plotting onto OpenStreetMap tiles
GitHub-Crud PRBRENAN 2017.512 2017-05-13T00:29:04 Create, Read, Update, Delete files on GitHub
GraphQL ETJ 0.01 2017-05-18T14:48:06 The great new GraphQL!
Hash-Normalize VPIT 0.01 2017-05-26T14:58:51 Automatically normalize Unicode hash keys.
IO-ReadPreProcess ADDW 0.8 2017-05-22T18:51:47 Macro processing built into IO::File replacement
Image-Sane RATCLIFFE 0.06 2017-05-11T19:54:47 Perl extension for the SANE (Scanner Access Now Easy) Project
Imgur-API MLHOLLEN v0.0.1 2017-05-14T03:20:06
JSON-Assert SGREEN 0.04 2017-05-26T03:12:20 Tests JPaths into an JSON Data structure for correct values/matches
LWP-CurlLog JACOBG 0.01 2017-05-29T22:14:05 Log LWP requests as curl commands
LWP-Throttle NHORNE 0.01 2017-05-26T16:43:03 Throttle requests to a site
LWP-UserAgent-Throttled NHORNE 0.02 2017-05-26T18:22:28 Throttle requests to a site
Lingua-IN-TGC RAJ 1.01 2017-05-17T13:52:05 Perl extension for tailored grapheme clusters for indian languages
Log-Any-Plugin-Format JJATRIA 0.01 2017-05-06T20:25:14 Add a formatting subroutine to your Log::Any adapter
Log-Any-Plugin-History JJATRIA 0.01 2017-05-06T20:23:41 Add a message history to a Log::Any adapter
MARC-File-XML GMCHARLT v1.0.5 2017-05-24T01:18:18 convert a MARC file to XML
MarpaX-ESLIF-ECMA404 JDDPAUSE 0.001 2017-05-13T07:20:52 JSON Data Interchange Format following ECMA-404 specification
Mojo-CallFire SADAMS 0.01 2017-05-21T02:03:10 A simple interface to the CallFire API
Mojo-CloudCheckr SADAMS 0.01 2017-05-19T04:55:03 A simple interface to the CloudCheckr API
Mojo-IOLoop-DNSNative COFFEE 0.001 2017-05-25T12:57:23 Async native DNS lookup
Mojolicious-Plugin-Mailgun MRAMBERG 0.01 2017-05-15T13:45:56 Easy Email sending with mailgun
MooX-Locale-Passthrough REHSACK 0.001 2017-05-31T14:46:12 provide API used in translator modules without translating
MooX-PDL2 DJERIUS 0.01 2017-05-31T03:19:49 A Moo based PDL 2.X object
MooseX-DataModel JLMARTIN 1.00 2017-05-09T15:31:03 Create object models from datastructures
NOLookup TROHAU 1.01 2017-05-03T13:40:32 a set of lookup modules for various Norwegian data services.
Net-Async-Github TEAM 0.001 2017-05-11T14:48:48 support for https://github.com's REST API with IO::Async
Net-Async-Graphite CHOHAG 0.0_1 2017-05-26T09:32:28 Request data from graphite
Net-Async-OAuth TEAM 0.001 2017-05-11T14:53:03 Basic OAuth support for async code
Net-Async-TravisCI TEAM 0.001 2017-05-11T15:38:57 API support for travis-ci.com and travis-ci.org
Net-Async-Trello TEAM 0.001 2017-05-11T12:49:54 Interaction with the trello.com API
Net-DNS-Extlang JRLEVINE 0.1 2017-05-14T03:16:00 DNS extension language
Net-Etcd HEXFUSION 0.008 2017-05-29T18:38:28 Provide access to the etcd v3 API.
Net-FTP-Path-Iter DJERIUS 0.02 2017-05-09T17:11:29 Iterative, recursive, FTP file finder
Net-FTP-Rule DJERIUS 0.01 2017-05-03T21:38:28 Iterative, recursive, FTP file finder
Net-Frame-Layer-MPLS VINSWORLD 1.00 2017-05-25T02:24:10 Multiprotocol Label Switching layer object
Net-Hacky-Detect-IP DAEMON 0.01 2017-05-07T10:29:44 Hackily try different methods of attaining local system IPs
Pcore-Ext ZDM v0.1.0 2017-05-01T20:03:51 ExtJS raw js generator
Perinci-Examples-ResMeta-Table PERLANCAR 0.001 2017-05-24T02:24:25 Demonstrate the various table and table.* result metadata property/attributes
Perl2Package MLHOLLEN v0.1.0 2017-05-15T01:27:28 Wrapper scripts to generate RPM/DEB packages
Plack-App-Catmandu-Bag NICS 0.01 2017-05-12T15:24:46 Plack application that wraps a REST API around a Catmandu::Bag
Plack-Middleware-Memento NICS 0.01 2017-05-19T10:14:41 Base role and interface for Plack::Middleware::Memento handlers
Plack-Middleware-Memento-Handler-Catmandu-Bag NICS 0.01 2017-05-19T11:36:09 Connect Plack::App::Catmandu::Bag to Plack::Middleware::Memento
Plack-Middleware-Signposting VPEIL 0.01 2017-05-29T18:44:22 A Signposting implementation from JSON content
RPi-Pin STEVEB 2.3601 2017-05-27T21:39:23 Access and manipulate Raspberry Pi GPIO pins
RT-Extension-RightsInspector BPS 0.02 2017-05-11T19:26:54 RT-Extension-RightsInspector Extension
Redis-ClusterRider IPH 0.01 2017-05-19T21:42:08 Daring Redis Cluster client
Ref-Util-XS XSAWYERX 0.114 2017-05-11T16:03:20 Utility functions for checking references
Reply-Plugin-Autocomplete-ExportedSymbols AKIYM 0.01 2017-05-28T11:13:08 Tab completion for exported symbol names
Resque-Plugin-Retry MERU 0.01 2017-05-08T09:43:15 Retry the fail job
Router-XS DFARRELL 0.01 2017-05-24T14:24:53 Fast URI path to value lookup
SNS-Notification JLMARTIN 0.02 2017-05-15T12:38:14 An object for representing SNS Notifications
SQS-Worker JLMARTIN 0.05 2017-05-15T14:43:59 A light framework for processing messages from SQS queues
Swagger-Schema JLMARTIN 1.00 2017-05-09T15:31:15 Object model for Swagger schema files
Sys-Linux-Namespace SIMCOP 0.001 2017-05-04T06:04:28 Sets up linux kernel namespaces
TOML-Examples PERLANCAR 0.001 2017-05-09T12:49:37 Example TOML configuration files
Test-HTTP-LocalServer CORION 0.57 2017-05-08T16:38:00 spawn a local HTTP server for testing
Test2-Plugin-IOSync EXODIST 0.000001 2017-05-02T03:10:14 Load IOEvents and IOMuxer so that they work together.
Text-ReadConditionally ADDW 0.72 2017-05-12T17:48:22 Macro processing built into IO::File replacement
Time-Moment-Epoch HEANEY 0.001 2017-05-20T13:47:59 Convert various epoch times to Time::Moment times.
URI-amqp JASEI 0.1.0 2017-05-23T08:04:18 AMQP (RabbitMQ) URI
VMOMI STUMPR 0.01 2017-05-02T23:21:41 VMware vSphere API Perl Bindings
VMware-vCloudDirector NIGELM 0.004 2017-05-04T14:26:03 Interface to VMWare vCloud Directory REST API
Verilog-VCD-Writer JVS 0.001 2017-05-23T22:35:53 VCD waveform File creation module.
WWW-Leech-Parser JAREDSPB 0.01 2017-05-07T10:46:35 HTML Page parser used by WWW::Leech::Walker
WWW-Leech-Walker JAREDSPB 0.01 2017-05-08T12:22:08 small web content grabbing framework
WWW-Mechanize-Plugin-Selector CORION 0.16 2017-05-12T13:04:28 CSS selector method for WWW::Mechanize
WebService-Naver-TTS AANOAA v0.0.1 2017-05-05T03:22:40 Perl interface to Naver TTS API
XS-Tutorial DFARRELL 0.01 2017-05-03T02:16:43 documentation with examples for learning Perl XS
Yandex-Dictionary BRNFLK 0.001 2017-05-15T14:53:55 a simple API for Yandex.Dictionary
Yandex-Translate BRNFLK 0.01 2017-05-02T17:05:45 Perl extension for using Yandex API
Zimbra-Expect OETIKER v0.1.0 2017-05-16T07:23:56 Execute multiple commands with a single instance of zmprov or zmmailbox and thus run magnitudes faster
chi-driver-elasticache-memcache ZEBARDY 0.01 2017-05-11T20:17:56 This is a CHI Driver for AWS's Elasticache memcache implementation
fastQ_brew HALLORAN 1.0.2 2017-05-09T20:18:31 Provides methods for fastQ file manipulation
fastQ_brew_ver HALLORAN 1.0.2 2017-05-12T17:36:44 Provides methods for fastQ file manipulation
geoip DANNYT 0 2017-05-11T14:44:44
graphcompare SCASTILLO v0.6.1 2017-05-25T12:49:23 A command-line tool to compare graph files in DOT or tabular format.
net-async-graphite CHOHAG 0.0 2017-05-25T19:26:47 Request data from graphite.

You can also browse new distributions on MetaCPAN. See also What’s new on CPAN – May 2017 (a curated list by David Farrell).