Perl Things I Have Found Useful

Tom Hukins tom at
Tue Dec 30 10:43:23 PST 2008

Hi all,

There's been some healthy discussion about Perl on IRC, but we've
shamefully neglected it on this list for months.

As we reach the end of the year, I thought it might be fun to list a few
Perl modules I've found useful in 2008.  This isn't a list of new or
exciting modules, just modules that have helped me solve the problems
I've encountered.

So, here goes, in no particular order except (mostly) alphabetically:

I often take DateTime and its associated modules for granted.  Then I
find myself working with code bases that use other modules, or other
languages, and I miss it.  The power of DateTime::Format::Natural scares
me, but in a good way.

Perl has had profilers for years, and sane people have never optimised
their code without profiling it first.  But this one just works better
and has more flexible options.  If I'm honest, I'm most impressed by the
Web interface with Devel::Cover-like colours and fancy mouseover

It's 13 years since I first used LWP, and it's still a really convenient
way to communicate with Web servers.  LWP::Simple makes the simple
things very simple.  This year, I've found myself grubbing around in the
innards of LWP while fighting SOAP and its Perl implementations.  The
module has well structured code and has seen useful new additions this
year, such as transparent gzip encoding of data.

People still write large applications without using a logging system.  I
wish they wouldn't.  People who log their code often write their own
logging systems.  I wish they wouldn't.  I like Log4perl because I can
see different types of log from my code by reconfiguring it, often
without much effort.

Test::Deep and Test::Differences:
I've spent too much time writing code that throws data around between
different systems this year.  When I need to check that I'm rearranging
data as I intended, these modules help.  Test::Differences gives me a
visual representation of failure that I find easy to understand:
Test::Deep lets me exclude certain parts of data structures or check
using regular expressions.

I've been messing around with this in odds and ends of spare time,
working on an interface to a Web service I used in my previous job.  I
extended a SOAP::Lite wrapper for it that worked well enough for our
needs, but it felt clumsy and I spent too much time working around
SOAP::Lite's inadequacies.  With XML::Compile::SOAP, I've generated a
working interface quickly, even though the module very much still feels
like a work in progress.

How did Perl help you work and play this year?


More information about the MiltonKeynes-pm mailing list