Reviews by Grant McLean


XML-LibXML (2.0132) *****

This is an excellent tool for working with XML (and also HTML). The standards-compliant DOM supports using XPath to slice and dice your documents, which provides an amazing combination of power and convenience.

As others have said, there is a bit of a learning curve, but to help you get started I've written a tutorial document here:


I used to have a 'review' here pointing out a problem with this module's installer (RT#5943). That problem is fixed in the version 0.2 release so I have removed that review.

I've never had need of an RTF parser, so I can't comment on how effective this module is for that purpose.

PDF-Reuse (0.32) ****

If you want to assemble PDF's by combining templates and overlaying text then this module is an excellent choice. It can also be used to create PDFs from scratch. There are good examples in the documentation to get you running quickly. The PDF generation is blindingly fast. The output quality is excellent. The author/maintainer has been very responsive about incorporating patches and adding new functionality. Highly recommended.

Apache-Test (1.22) *****

This is a very useful module that integrates nicely with the standard Test::Harness/Test::More way of doing things. It takes care of starting/stopping a special Apache instance and managing requests/responses. Your test scripts can very easily fire off requests and check that each response has the right status code, headers and content.

Works for testing Apache handlers and CGI scripts written in any language (obviously including mod_perl).

DateTime (0.28) *****

This is a great module. It gives you an object representing a date/time from which it is easy to extract the constituent parts (day, month, hour ...), or format the whole thing into a human readable string (built in strftime). It also supports common date/time comparisons and manipulations (truncate to 1st of month, add an interval ...).

My one complaint would be that the base class does not directly understand ISO8601 dates. This functionality is relegated to another distribution with a number of dependencies.

Pod-Simple (3.02) *****

You don't want to be trying to parse POD with your own hand-rolled code. This module is easy to use and very flexible. The OO design and assortment of bundled formatters mean you can start by inheriting from a class and your job is 90% done.

HTML-Mason (1.26) *****

Mason is a well engineered framework and templating system on which you can build powerful web applications. The documentation is excellent, the system is feature-rich, reliable and well integrated with Apache/mod_perl. You can also use it with CGI and non-web scripts.

In my experience, Mason works well when your templates are built and maintained by Perl coders. If you want a system that allows non-programmers to edit templates with their GUI tools then you might be better off looking at Petal or the Template Toolkit.

Petal (2.00) *****

Petal is a good choice for an (X)HTML templating solution. It's a bit more powerful than HTML::Template and a lot less powerful than the Template Toolkit (which many would argue is a good thing). The key point of difference compared to other solutions is that it's all done with attributes in the tags rather than with special tags. This means that the 'magic' stuff in the template usually survives encounters with Dreamweaver, FrontPage etc and you can edit and preview templates directly in your browser without using Petal or even a web server.

XML-Parser (2.34) ****

This is a good solid module but you should not use it for any new code you are writing.

If you want an event based parser, the SAX API is superior to XML::Parser's API and is supported by a number of different parser libraries - write your code to the SAX API and you can use whichever parser happens to be installed.

If you want a tree style parser then you should look at either XML::Twig (for a strong Perl flavour) or a DOM module with XPath support such as XML::LibXML, XML::XPath or XML::GDOME.

See also the Perl-XML FAQ:

Template-Toolkit (2.10) *****

The Template Toolkit rocks! Useful for all sorts of things (not just web pages), very powerful, lots of useful plugins, great documentation and actively supported.

The biggest complaint is that it's 'too powerful' - it *allows* you to embed Perl code in a template that would be hard for a non-programmer to maintain. Well duh! if non-programmers are going to maintain your template then of course you shouldn't put program code in there - no one's forcing you.