Make Perl Scripts More Readable With perltidy

Monday Sep 29th 2008 by Juliet Kemp

Tip of the Trade: Even if it's not your own, messy code is a fact of life for every programmer. Clean up messes with perltidy, an app generated from the Perl module Perl::Tidy.

Juliet Kemp
I am of course sure that everyone reading this is well aware of scripting best practices and always writes beautifully neat and well-set-out scripts that will still have meaning when you return to them in six months time. You might not then need perltidy for your own scripts.

Even so, from time to time you might come across a script left over from before your time or written by a colleague in a hurry that on examination bears a strong resemblance to alphabet spaghetti.

Recent Tips
» IPTraf
» Cracking Passwords

Read All Tips of the Trade

Enter perltidy, a program generated from the Perl module Perl::Tidy, which saves you time by unmangling Perl code for you. You can download it from CPAN, or it may be available through your distro. (Debian and Ubuntu both provide it.)

Basic operation is simply to type perltidy This will leave the initial file alone and create a new tidied-up file with a .tdy extension.

Alternatively, you can use the -b switch to do the opposite: Make a backup of the original file and then edit it in-line. The -syn switch will run a syntax check of the original code at the same time.

I tried it out on the second prize entry in the 5th annual Obfuscated Perl Contest. Although it didn't simplify the program logic any, it definitely made it more readable and gave a better chance of figuring out what was going on. Try it out for yourself, and see if it can save you some time and mental effort in disentangling confusing code.

Ed Note (Oct. 13, 2008): Thanks to Randal L. Schwartz for pointing out it's a good idea to set up tests for your code, to check that it does the same thing after perltidy is finished as it did before. As he discusses here, ultimately the only thing that can interpret Perl code entirely reliably is the Perl interpreter itself. So be aware that there are circumstances in which Perltidy (and similar programs) can break code!

Mobile Site | Full Site
Copyright 2017 © QuinStreet Inc. All Rights Reserved