Make Perl Scripts More Readable With perltidy
![]() |
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.
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 badscript.pl. 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!

