Ratings and Reviews for CPAN


Rate a distribution

Find a distribution you would like to review:

Recent reviews (RSS feed)

MobileDetect (1.16) **

> because there is no such thing in perl

Seems to duplicate much of HTTP::BrowserDetect and CGI::Info.

Syntax-Highlight-JSON (0.01) ***

All of the complaints about this module are dead on.

However the interface is extremely easy to use, and the combination of syntax highlighting and formatting in HTML is something you might want. I did. This module got my feature done in no time so I could move on to other things.

Mojolicious (5.62) *****

Mojolicious makes it easy to start a project, to continue developing a project, and to maintain it after it is finished.

It has great debugging and testing facilites, and if you want to build a RESTful web service, Mojolicious gives you a RESTful architechture to begin with.

And you can mix and match Mojolicious with other modules if you want to or need to without any problems, even though it might not be immediately obvious to a beginner how a preforked server - hypnotoad for instance - differs from a single process dispatch architecture - morbo for instance, which might trip you up if you need communication between various sessions, or want to share database handles, etc.

Works well with DBIx::Class too, which makes it ideal for rapid AND well structured web development projects.

All in all, one of the best (most useful) web frameworks around.

Geo-UK-Postcode (0.008) *****

Simple, yet comprehensive! Very useful.

Net-Google-Calendar (1.05) *

This no longer works with Google Calendar as it uses V2 of the API which has been discontinued:

Catalyst-Plugin-Params-Demoronize (1.14)

[obsolete review removed]

HTTP-Tiny (0.050) *****

Thank you for great LWP-replace!

Pry (0.003001) *****

Fantastic debug tool, and so much more reasonable than the built-in perl debugger.

A great companion to Devel::Confess; applying '-d:Confess' clues me in to exactly where things went sour, adding 'pry()' gives me a REPL that lets me know what lexicals are in scope & inspect them to determine why.

Expect (1.32) *****

Expect continues to be critical to my daily programming needs. Keep up the good work

Moo (1.006001) *****

With the addition of Types::Standard, I finally like Moo.

Moo's implementation of Moose is complete enough that I don't miss whatever features are missing, fast enough that I don't see it showing up as a bottle neck in profiling, and stable enough that I rarely run into a bug.

Moo's meta class is compatible with Moose. That is, Moo classes and roles can extend Moose classes and roles and vice versa. Moo is measurably faster than Moose, this allows you to write some performance sensitive classes in Moo but still cleanly interoperate with the rest of your Moose classes.

Its support for Type::Tiny (via Types::Standard) really makes Moo shine. Types::Standard provides Moo with Moose compatible types and more. It fixes many of the ambiguities which plague Moose's type system.

Pithub (0.01027) *****

[Disclosure: I patched and released version 0.01027]

A very complete, consistent interface to the Github API without too much sugar gumming things up. It works well with Github pagination and provides ample access to the HTTP layer for debugging and error handling (for example, you can check for a 404 code rather than parsing a "not found" message). If any API call is missing you can easily write your own request.

Version 0.01027 introduces support for request caching (aka "conditional requests") to reduce API calls on the same resource.

SQL-Translator (0.11020)


Mojolicious-Plugin-Database (1.08) *

Despite of promising in the documentation:

Provides "sane" handling of DBI connections so problems with pre-forking (Hypnotoad, etc.) will not occur.

it exactly does NOT fulfill this promise.

Author writes in


Just to keep it in perspective, the ::Database plugin has always been somewhat of an example of "this is how you initialize a DB connection" and doesn't really do much of anything beyond that. It's not smart, but it tends to work - mostly :)

The problem with "MySQL server has gone away" is NOT handled properly. So, I have to take about any problem with the Database-Connection myself when being in a productive environment. No mention about this in the documentation.

CPAN-Test-Dummy-SCO-Special (0.04) ****

Just for testing the S.C.O. clone

Google-GeoCoder-Smart (1.16) ****

Very useful to find out coordinates of a street address. Works as expected!

App-perlbrew (0.71) ****

Echoing all the other reviews here, Perlbrew is simply awesome. It it like local::lib on steroids with none of the manual management. It also supports the fish shell perfectly which is just awesome.

Acme-PrettyCure (0.1.3)

Jemplate (0.30)

Good module, great idea, but it is looking a little unloved amongst the author's other modules, and the website, which claims that it is generated by Jemplete, seems not to be (I viewed source for the page), and is also broken (none of the links except home work).

Geo-Calc (0.12) **

We have migrated to Geo::Calc::XS, and ASP, the author of Geo::Calc and Geo::Calc::XS, has kindly allowed me to be a co-maintainer of Geo::Calc::XS. Note that Geo::Calc::XS isn't a drop-in replacement but it almost is.

Geo::Calc does what it says on the tin, but the documentation does leave a lot unmentioned. There should be at least a mention of Geo::Calc::XS and what the differences are. Some of the documentation is actually incorrect, for which I've filed a bug.

The object-oriented interface is not to my taste, but it's easily understandable.

Signal-StackTrace-CarpLike (0.01)

Nice, but Signal::StackTrace should've output something carp-like in the first place.

Devel-Messenger (0.02)

I think this is basically logging under a fancy name and with a more cumbersome interface. Look at Log::Any instead.

PerlMongers-Hannover (0.02)

Instead of just printing some info, why not make it an Acme::PM or Acme::PerlMongers like Acme::CPANAuthors? Various stats can then be produced about the various Perl Mongers.

Lingua-EN-AddressParse (1.20) *****

I've found this a very good address parsing module. In my testing it seems to do slightly better than Geo::StreetAddress::US (v1.04) on US addresses, and it also supports CA, UK, and AU address formats.

It has some support for more 'advanced' address elements like sub-properties ("Unit 2A", "STE 209"), street directionality, and property names ("Attenborough House", but only if quoted).

I also really like that address normalisation is optional, since for some of my use cases I want to be able reassemble partial addresses from their parsed components, without any normalisation.

The main limitations I've experienced so far are these:
- it doesn't seem to support intersection addresses, which seem to fairly common in the US (Geo::StreetAddress::US::parse_intersection works well though)
- it won't parse incomplete addresses (e.g. city/state/postcode without a street), so you have to make sure you have complete addresses each time
- you have to know the address country to pass into the constructor, which means you can't just pass in an address in an unknown format and have it auto-detected

I also have a few minor quibbles with the interface, but at the details are all well-documented, at least.

I'd also love more coverage than just US/CA/UK/AU, but I also understand that real-world address parsing is *hard*. I'm grateful enough for a module that does a decent job of parsing some non-US addresses to give it 5 stars.

(Not sure why Mark Stosberg was having problems with 1.19, his examples all work fine for me on 1.20)

App-Cmd (0.323) ****

App-Cmd is a great module to define a good structure of your set of commands. Options, documentation and functionality are neatly packed together.

The only hitch is that options are bundled by default (i.e. -xy is options -x and -y, -foo is not understood as --foo). This default
behavior does not match Getopt::Long behavior.

The non bundled option can be setup by adding

{ getopt_conf => [ qw/no_bundling/ ] }
to the option specification in opt_spec sub.

THEMA-MEDIA (2014.10.02) *

This kind of blatant advertising should be removed from CPAN. I'll also make sure my customers, co-workers and friends know that the company has little respect for the Perl community.