If you spend any time working in Perl, I think you should a take a look at Padre, the Perl IDE – it’s worth spending a couple of hours looking at, at least.

Generally, I don’t use IDEs, as a lot of the time I don’t have access to a GUI (SSH + GNU screen FTW!) – I usually use a mixture of both vim and emacs, depending on what I’m doing (and what’s installed). So, when it came to a Perl IDE, I wasn’t too bothered.

Then I installed it and started using it – and was impressed. An IDE for Perl, written in Perl, making it pretty easy to make whatever changes you want to it.

One thing I did want in Padre, but couldn’t find, was the ability to use local::lib to get the things I wanted just for Padre. There’s nothing in the startup file for it, nor are there any config options to add a local::lib for Padre. Then, the correct, most Perlish method struck me – Padre is a Perl module, so the Perlish way to add local::lib support would be to write my own startup script, loading local::lib before Padre. And that’s just what I did. 🙂


use strict;
use warnings;
use local::lib; # ~/perl5 is fine with me
require Padre;

my $SESSION; # Am I being too "virtuous" here? :)

my %opts = (
 files   => \@ARGV,
 session => $SESSION,

my $app = Padre->new(%opts);
unless ($app) {

 # Single instance worked correctly

# Start the application

Okay, I’ve cheated and not bothered to read/set the ‘session’ value, but I can easily copy that from the default Padre startup script if/when I need it.

I’m still getting used to it, but so far it’s looking good – really good. It’s a shame there’s no database modeller plugin yet, but I’m guess that someone (maybe even me, if I ever get the time!) may create one.