Productivity Perl Modules
A command line utility that can be configured to connect to a remote server over SSH, install a command in that server's path to edit files, and then open the remote files on the local computer for editing whenever that command is used on the remote machine.
Perl Testing Modules
Test your test modules. This module is now bundled with Test::Builder itself, and is distributed as part of the perl core (i.e. along with Perl itself and is probably already installed on your computer.)
Test your database. Use existing SQL or have this module build it for you dynamically. Perform multiple tests on the returned data and get clear, concise, diagnostic output if any test fails.
Testing XML with Perl easily. Unlike Test::XML (whose interface I steal) we just rely on XML::Easy which has no external C libary dependancy and is fully functional without a C compiler at all.
Huristically test to see if you've double encoded a utf8 string by looking for things like "
é©" in your strings.
Huristically test to see if you've double encoded your XML entites by looking for things like "
&é" in your strings.
A tutorial module; This silly testing module is designed to be an example of how to write, and test, your own testing module.
Perl XML Handling Modules
XML::Easy is a wonderful Perl module for writing XML. It's blindingly fast, has no dependancies on external C libraires, has just one non-core dependancy with Params::Classify, and can be installed without a C compiler. Despite this, and despite the name, it's not particularly easy to write XML with XML::Easy. This module is simple declarative interface that simplifies the interface considerably.
XML namespaces link prefixes (the
foo part of
<foo:bar/>) to URIs to allow the prefixes to refer to different namespaces. Because of the tree nature of the document however, the same prefix might mean a different namespace at a different point. This module works its way though a document changing the prefixes that are mapped to URIs so that all the prefixes that refer to the same URI are the same and all the prefixes that refer to different URIs are different.
Use XML::LibXML from within the Template Toolkit. This module exposes the XML::LibXML parser to templates and monkeypatchs the various XML::LibXML modules so they work with the Template Toolkit
[% VIEW %]
Mark a subroutine to be removed from your namespace (i.e. to prevent a utility function being called as a method on your class) with an attribute.
A utility that can print out, as they are compiled, all function calls to a particular subroutine.
Extract out elements of an array that match a particular block and return them.
Syntatic sugar for attempting an operation a number of times if it throws an exception.
A utility module that, if you include it in your class, prevents your class being loaded apart from on the command line.
Sublime Text 2 Plugins
Missing the ability that TextMate has to execute shell commands within snippets now you're using Sublime Text 2? Want to execute embedded Python from within your snippets? This extension to Sublime Text 2's own snippet mechanism allows you to do that.
A version of find and replace that can be bound to a keyboard shortcut.
On Mac OS X, this plugin allows you to open a Terminal in the directory the file you're editing with Sublime Text 2 lives.