At least on the operating systems I care about this seems to work fine. The functionality is limited (I wish it'd give me mac addresses, too), but compared to some of the alternatives the API at least isn't insane.
This module is a Perl interface for the Braintree Payments service.
As another reviewer noted, there's no documentation in the package itself. It is, however, reasonably well documented on the vendors website (the module is useless without their website anyway): www.braintreepayments.com/docs/perl -- at least a pointer to that would be nice to have inline.
The API is nicely "Perl-ified" while still following their general API conventions (so the "base documentation" and examples in other languages are useful, too).
There are - unsurprisingly - a bunch of modules on CPAN to generate passwords.
For sites with moderate needs for "super random" passwords, this module makes reasonable passwords for regular users. It doesn't make "super random" passwords, but I suspect Text::Password::Pronounceable will generate passwords that the users are less likely to change into something completely stupid than if you create default passwords like j^ß*r5æé#.
I have a project where I needed to implement Apache-style routing from an httpd.conf file. Of the various "routing" modules Router::Simple was the easiest to map to this particular problem â€“ and so far it's been more than flexible enough.
The other similar modules (listed in the Router::Simple documentation) have other features, but Router::Simple was by far the easiest to get started with and to understand/debug as I was getting my application workingÂ®.
Perlbal is great as a backend tool to load balance busy application servers. For static content and such, other options (Varnish, nginx, haproxy for example) are better Ã¢Â€Â“ but for careful, accurate and end-to-end reliable load balancing of resource intensive servers perlbal is great.
Some of my favorite unique perlbal features are
- Checks each connection is actually working before using it (optional, but the default)
- Can multiplex keep-alive connections so the client and servers are both keep-alive, but not tied to each-other.
How hard can it be to round a number? Well, surprisingly tricky. Sure, it's still just a few lines - but with this module it's taken care of for you in a reasonable fashion. The API is quite complete with various "rounding related" functions. (Floor, ceiling, round to nearest multiple of a number etc).
This is mostly regarding Mail::Send/Mail::Mailer. As Jos mentioned, it's just full of inconsistencies, the API is awful and under-documented and the default behavior is weird at best and harmful at worst.
It might have been a good idea back in the day when everyone were running all programs as their own user on the system where they also read email; but it's 10 years later now and we should use something better (the APIs etc here are just too convoluted and awful to fix).
It seems to work ok for basic numeric size based file rotation, but the date stuff is a mess. Using Date::Manip (which now requires 5.10); the 'yyyy-mm-dd' format is a hack (only specific formats work; and they aren't documented). .... and I couldn't actually get it to work.
I only just started looking at the code when I found Log::Dispatch::File::Stamped which is much simpler, clean code and does what I needed.
From the code examples it looks like there might be a unique approach in this module (compared to Template Toolkit, Mason, HTML::Template, ...), but since the documentation is all French and my French isn't that great, I couldn't get started!
You install the bundle from the CPAN.pm shell (run it with "perl -MCPAN -eshell" or on most systems just as "cpan"). Do an "install Bundle::W3C::Validator" from the CPAN shell and it'll install all the modules needed.
An earlier reviewer was disappointed that this package didn't actually include the other modules, but that's not how the CPAN bundles work (or should work).
From spread.org: "Spread is a toolkit that provides a high performance messaging service that is resilient to faults across external or internal networks. Spread functions as a unified message bus for distributed applications, and provides highly tuned application-level multicast and group communication support."
The Spread.pm module doesn't have a very Perl'ish API. Spread::Session is a thin OO wrapper that makes the API very neat and clean.
You still have to install Spread.pm - and not from CPAN. You need to use the distribution that is included with the spread code to make it compile.
It would be helpful if the documentation had a few hints as to how to control the logging Spread::Session does (via Log::Channel); or maybe there could even be an option in the constructor to turn it off.