Reviews by Breno G. de Oliveira


Sort-Naturally (1.02) *****

This is one of those modules that does only one thing and does it well: compare numeric substrings as numbers, and characters as characters. You "use" it, replace "sort" with "nsort", and it works like a charm. Nice!

Aaron wrote in his review that 'The results of Sort::Naturally were not what I expected. For example, "AZZZ3827Q" sorts ahead of "A1".'

The rationale for this is documented on the module's POD:

"When comparing two strings, where a numeric substring in one place is not up against a numeric substring in another, the non-numeric always comes first."

Even the synopsis code already presents this to the potential user, ordering elements as:

qw(9x 14 foo fooa foolio Foolio foo12 foo12a Foo12a foo12z foo13a)

So I really don't understand the poor rating. That said, the documentation for this module *can* be a little too confusing for such a simple purpose and contains a few typos. There is even (by the time of this writing) a two-year old ticket regarding them, which is why I gave this module 4 stars for documentation.

namespace-autoclean (0.09) *****

Don't you love when a module does *exactly* what it says it does in a clean, simple, and most importantly correct fashion? This is namespace::autoclean.

No headaches, no code compromises, nothing. It just works. A remarkable piece of code in the CPAN that every serious programmer should at least know of.

YAPC (1.01) *

This document is rather outdated and incomplete.

People interested in hosting YAPC should refer to the updated version hosted by The Perl Foundation in their Google Code repository at:

Class-XSAccessor (1.03) *****

I have been using this module for quite some time now and I must say it's been a real joy. It's well documented and provides a very clean (and fast!) interface to getters and setters.

If you're not using Moose, you can still avoid wasting time writing your accessors, predicates - even your new() constructor.

Wx-Demo (0.10) *****

This is a really great package. Not only Mattia did an amazing job wrapping wxWidgets on Perl, but he also hands out this other Pe(a)rl to us.

Upon installing Wx::Demo, you'll get a program called, which contains about all the widgets you can have. Not only that, but every example is split in two tabs: one with the demo for the widget you selected, and another with the actual source code of that demo, so you can see exactly how it's done.

If you learn better by example, you'll have no excuses not learning wxPerl.

Filter-Simple (0.82) *****

There are two very distinct Eras of the "Acme" namespace: before and after Filter::Simple. In fact, it gave to occasional non-expert authors the ability to expose their overly inventive minds to unsuspicious users. Lots of fun!

Source filtering should, of course, be used with extreme caution for "professional" code. And Filter::Simple lets you do it quite nicely either way.

OpenGL (0.56) *****

I don't know about 0.54, but version 0.56 has one of the best (for a library wrapper) documentations available in the CPAN world. Granted, the documentation available directly on CPAN just lists the functions, tells you how to use them and possible caveats. But it also points to Perl OpenGL's official website ( that has tons of Perl-specific API documentation, tutorials, examples, links and even benchmarks.

As a wrapper for the OpenGL, it does exactly that. You can easily convert standard C/C++ OpenGL examples to Perl and they will DWIM beautifully (plus: it's fast!)

If you'd rather have a more perlish version of the OpenGL library, there is always Jonathan's OpenGL::Simple. But it's still OpenGL, so potential users should first and foremost refer to the OpenGL standard documentation before adventuring.