Reviews by Randy Stauner


CSS-Minifier-XS (0.08) *****

Simple to use, well-explained documentation,
and even minifies less(css) without breaking it!

String-Strip (1.01) *

I used to use this module in a project of mine where I'd be trimming potentially millions of strings during a program run because I thought any possible speed up from XS wouldn't hurt.

However I have noticed a 2 grievous bugs in the software:

1. Strings longer than 8 characters seem to get mangled on a 64bit machine (

2. The tests actually fail, but the module STILL INSTALLS.

It is dangerous, and since it is long-unsupported I suggest staying away from it.

HTML-Form (6.00) ****

Incredibly easy way to fill in forms when using LWP.

I was prototyping a screen scraper that required 2 form posts prior to getting to the page I wanted and this module handled that in about 3 lines of code per form.

Very nice!

CGI-Application-Emulate-PSGI (0.02) *****

I was trying to run a CGI::Application::Dispatch-based module (CPAN::Mini::Inject::Server) with plackup...

I tried CGI::Application::PSGI and CGI::Application::Dispatch::PSGI but wasn't able to get either of them working right (according to their synopses). Third time's a charm.

CGI::Application::Emulate::PSGI made it super easy.

Text-ASCIITable (0.18) ****

The module may be aging a bit,
but it was quite simple to use and was exactly what I needed.
I had a nice easy-to-read table in my terminal
with 3 lines of code (plus 1 for the require).

Perl-PrereqScanner (1.001) *****

Great module!
Obviously it is used by the excellent Dist::Zilla::Plugin::AutoPrereqs,
but I've lately been doing some work on a 5-year old dist that is run on 50+ off-site machines.
It will take me a while to convert it to Dist::Zilla,
but in the meantime I have been able to keep myself from breaking things
with just a few lines of code in a Makefile that scans for all the prereqs and installs any missing ones from cpan.
A lifesaver for us absent-minded fellows.
Thank you!

Test-MockDBI (0.64)

I liked this article:
but was unable to use the module.

The prepare() method returns the mocked database handle ($self)
instead of something like a statement handle.

The usual meta data (like $sth->{NAME}) is missing,
which was important for my module.

This code was sufficient for the tests I was running so I didn't end up using Test::MockDBI:

my $mock_sth = Test::MockObject->new({

NAME_lc => [@columns]


my $mock_dbh = Test::MockObject->new();

$mock_dbh->mock('prepare', sub { $mock_sth });

$mock_sth->set_series('fetchrow_hashref', @data)

XML-Simple (2.18) *****

It's great. It lives up to its name and makes XML Simple. I love how configurable it is.
I read the (extensive) documentation once and started using it.

I worked with it a little, realized I didn't like the output but remembered an option for changing it... looked it up, and poof: beautiful, simple output.
Repeated for more options.

Currently using:
my $xmls = new XML::Simple(ForceArray => \@array_tags, KeyAttr => [], KeepRoot => 1, SuppressEmpty => '');