Ratings and Reviews for CPAN


Rate a distribution

Find a distribution you would like to review:

Recent reviews (RSS feed)

Net-WebSocket-Server (0.003002) *****

I just like it, intuitive in itself.
A WebSocket server easy to hook in with your own code.
All the callbacks you need are considered.
Great job, from my point of view.

Devel-Confess (0.007012) *****

Provides some more features compared to Carp::Always, like producing stack trace even when exception is ref/object, color & dump function arguments (so you don't need a separate Carp::Always::Dump and Carp::Always::Color). Recommended.

Carp-Always (0.13)

This module works well for string exceptions (e.g. die "some message"), but for ref/object exceptions (e.g. die [404,"Not found"] or die $some_object) it will simply print/return the ref/object and thus no stack trace information is produced.

See also Devel::Confess, which can handle ref/object.


experimental (0.013)

Our prayer has been answered. experimental was added to perl core in 5.19.11

URI (1.67) *****

A very nice module! Highly recommended and useful.

Exporter-Lite (0.06)

Mostly unnecessary. The main premise of this module is that you don't need to inherit to use it. But you also can use Exporter (a core module, BTW) without inherinting it:

use Exporter qw(import);

XML-Parser (2.44) *****

Highly useful because of its speed, simplicity and adherence to standard Perl paradigms.

CSS-SpriteBuilder (0.03) ****

Does what it says on the tin.

Net-Google-Spreadsheets (0.1501) ***

0.1501 uses by default Net::Google::AuthSub that uses a Google API that has been deprecated for 2 years and that now longer works at all.

The workaround is to use Net::Google::DataAPI::Auth::OAuth2 for authentication.

Math-Gradient (0.04) *****

I wanted to experiment with color gradient: a quick look at the manual page and my first test script gave the expected beautiful result. Just does what it says on the tin. Five stars well earned.

Algorithm-Permute (0.12) *****

The functional (callback) interface is just what I wanted — ‘run this block of code once for each permutation of this array’. Couldn't be simpler.

The documentation could make this clearer though; you have to skip past a bunch of OO stuff to see it.

Net-Braintree (0.27.0)

This module has now been deprecated: support.braintreepayments.com/custome... Unfortunately, since the release contains no real documentation, this very important change in status has basically been left undocumented.

If you dig deeply enough, you'll find that it's documented _not_ in the README, but in README.md

It looks like the hosted Perl documentation has moved to developers.braintreepayments.com/java...

Color-Mix (0.02) *****

I think this module will be helpful for building a color theme for emacs, terminal, and other tools.

It did not calculate colors in the way I was expecting, but this was just my own ignorance. I had to learn a bit about color theory today to understand this, but the tools I have used in the past worked on the old traditional RYB color wheel. This has nothing to do the hex color being specified in RGB. Using the RYB scheme, the complimentary color of red is green.

The documentation is very explicit that it uses the RGB color wheel, but that didn't mean anything to me at first. Using that scheme, the complement of red is cyan.

At first I was convinced that the color schemes generated by Color::Mix were not as nice as the ones I generated on RYB. But after looking at a lot more samples, I think this is similarly nice, and will solve my problems.

Term-Menus (2.92) *****

I have searched for a while for a menu module and finally found Term::Menus. I am so glad when I tried it. It is neat and clear. Although I haven't got it all work out, Brian has given me a lot of help.

I am using to organize the test scripts I have. So each menu is a level of categories I organized the scripts into and the last level of menu will have the scripts listed and choose one will run the scrips.

Say I have some scripts to run GUI tests and some to run Package tests, I then list GUI and Package in Menu_main and choose GUI will go to Menu_GUI, there lists the scripts for GUI tests.

I haven't got all the feature provided in the great tool as some parts I couldn't get it right but so far it is the best. Hope I can figure them out soon.

Most important, Brian stand behind his code. Really appreciate all his time for helping me learn his great tool!

Git-Repository (1.313) *****

I commonly use this module:

my $git = Git::Repository->new( work_tree => getcwd );

$git->run( add => $options->{file} );

$git->run( commit => '-m', $message, "--date=$commit_day" );

$git->run( 'push' );

very useful to make things done!

Date-Holidays (1.01)

The idea is good, but a couple of things prevents me from using this interface.

First, the use of TryCatch (which brings the Moose ecosystem) makes the startup overhead too high for my taste (about 0.5s on my PC). Which is rather unfortunate because Date::Holidays itself does not use Moose.

Second, the interface assumes that a country has a single set of holidays, which is too restrictive in some cases. A more flexible/general interface would allow adding more calendars based not only on country but also religion, special community, organization, etc. And allow adding custom calendars.

Furl (3.07)

@Kira S (I wish cpanratings adds a feature to comment on a review):

Comparing WWW::Mechanize with Furl is not really apples-to-apples, since Furl does not support parsing/following links or form processing. As the Furl POD itself suggests, Furl is positioned as a faster alternative to LWP, not WWW::Mechanize.

Math-Permute-Lists (1.001) *****

Despite the scary-looking test results (currently, 89 passes/300 fails for version 1.001), this proved to be an excellent module.

I had the exact list of permutations I wanted to have after less than 2 minutes of finding this module; simply by writing this: permute { push @permuted, join '.*?', map quotemeta, @_} @bits;

Much simpler than the convoluted `glob` code I had.

The interface is simple enough to get you up and running simply by glancing at the SYNOPSIS.

Well-deserving of 5 stars.

Furl (3.07) *****

After benchmarking all CPAN HTTP solutions and being a very long user of WWW::Mechanize; I ended up choosing Furl. Among 20+ contenders, it was among the top 5 in speed, and with a very low memory footprint. It was also the one who croaked the less over thousands of random urls.

Because it is lightweight compared to Mechanize, much more quicker, and it handle a lot of things automatically that Curl and others low levels HTTPer do not (Multiple Redirects detection hell anyone?).

Support with HTTP::CookieJar, nice simple interface, and just works. Documentation is a bit terse, but if you are familiar with LWP or Mechanize you should be fine. Used in production for external webscraping and as a Rest API call.

A time/life saver and a well deserved 5 stars.

Arigatou Tokuhiro++

Win32-CLR (0.03) *

I never could get this module to compile. We did some research and are working to get Win32::OLE to work with .Net assemblies.

Mojolicious-Plugin-PDFRenderer (0.08) **

Seems a nice idea in theory, but in practice I ended up mucking around it for awhile before I even got any decent output that doesn't result in timeouts from workers.

I understand the problems lie essentially deeper down the tree of what this module uses under the hood, but indirectly, the module inherits the issues along with the code:

1) A couple of simple pages that I tried to render as PDF resulted in workers dying due to time outs. A 3-screen page takes several minutes to render even after I increase heartbeat timeouts—definitely not something I'd have available for use in production.
2) I found the above is largely rectified by using wkhtmltopdf version 0.9.9 instead of the current, but the plugin doesn't let you specify a different path to the executable
3) Using Bootstrap (and anything similar) results in the output rendered as if it were displayed on the "extra small" screen, even if you set giant page sizes.
3) Plugin generates a ton of 'uninitialized value' warnings
4) There are no options to allow PDF generation on only a few routes instead of ALL of them.
5) The docs mention you can pass options to wkhtmltopdf, but it's not too clear how to do it, and even when I managed to pass some, I got errors from wkhtmltopdf telling me the option I passed is in the wrong place.

In summation, I'd like to quote the current docs: "Then go to yourapp:3000/any/route, take a good look, then go to yourapp:3000/any/route.pdf. Cool, huh?"... yes, pretty cool, but offers little practicle value.

MetaCPAN-API (0.50) *****

very good implementation, thanks

Daemon-Control (0.001006) *****

What a great module!! You can even control multiple daemons from the same script!

IPC-System-Simple (1.25) *****

Instead of repeating the error handling of system-calls over and over again in your code, just use this simple module. Thanks!

Pod-Markdown (2.002) *****

I'm using it for generating the README.md for GitHub, and I find the pod2markdown script perfect for the job. Haven't used any fancy POD option, but the results seem pretty convincing so far.