Recommended Perl Modules
Too many modules on CPAN do the same thing. Which one is better? I wish there was a site that lists the good modules for each category.
We're trying to see how to be make sure people can find modules on CPAN more easily. See Finding a Module on CPAN.
See also Task::Kensho
World Wide Web
- HTML::Mason HTML-embedded perl
General Modules (not related to Web)
- autodie - Replace functions with equivalents that succeed or die, supporting a rich exception model.
- File::Find - core module, which has some serious interface limitations (cannot be instantiated, and cannot be easily interrupted).
- File::Find::Object - an Object-Oriented, non-core alternative to File::Find that overcomes its inherent limitations.
- Data::UUID (does not compile with Visual C++)
- IO::Stringy - I/O on in-core objects like strings and arrays. Even if you don't want to use this personally, it is a prerequisite for a number of other modules.
- File::MimeInfo - identifies MIME type of files using the robust FreeDesktop.org Shared MIME Info specification; has nothing to do with generating or parsing e-mail MIME streams. Think of it as an enhanced version of File::MMagic.
- Tie::Hash::Indexed - fast XS implementation of tied hash with ordered keys
- Log::Log4perl - a perl implementation of Log4j. Extremely powerful logging facilities, cleanly separating the concerns of when to log, where to log and what to log.
- Image::Magick - feature-complete, but can be a pain to compile and install.
- GD - built on top of gd C library
- DateTime - a comprehensive framework for parsing, handling and formatting dates and times in Perl.
- Date::Parse - excellent date/time-parsing module
- Date::Format - output dates/times in any format
- Time::HiRes - high-resolution (micro-second) timer module
- Wx - interface to the wxWidgets cross-platform GUI toolkit (formerly known as WxWindows). A better link is at sourceforge.net where the project is hosted.
- GTK - interface to the Gimp Tool Kit (GTK+) libraries which were orginally written for Gimp but are now used throughout the Gnome Desktop Environment.
- Tk - Interface to the Tk toolkit. Started out on UNIX-like platforms but now works fine on the windows platform.
Also see the Perl XML FAQ
- XML::LibXML - a feature-rich and high-performance module to parse XML based on libxml2, which provides DOM/XPath, a SAX-based parser, and pull-parser interfaces. Handles namespaces well, and supports many recent standards.
- XML::Parser - most basic access, built on top of James Clark's expat C library. XML-LibXML (see above) is normally preferable.
- XML::Simple - turn XML into a hash/array, and back. API is pretty big now, belying it's 'Simple' moniker.
- RPC::XML - perl implementation of the XML-RPC standard. Has some minor bugs, but a useful start.
- XML::Writer - a module for incrementally generating XML with a convenient interface.
- XML::Twig - a module that let's you handle huge XML in smaller chunks (twigs). More perlish interface than DOM.
- XML::Rules - produce a datastructure similar to XML::Simple, but with much more detailed control, also allowing you to handle twigs as they are being parser. When allowed to infer the rules from example XMLs or a DTD, even simpler than XML::Simple.
- Devel::Cover - measures how much of your code is actually tested.
- tidyview - not a module per-se, but an application to help you format your code with perltidy.