Archive for the ‘Perl Best Practices’ Category

PBP: 086 Boilerplates

Monday, March 2nd, 2015

The Best Practices suggest creating boilerplates for POD documentation.  They helpfully provide some examples, and suggest differentiating between modules and applications.  I can’t argue with these ideas, particularly when trying to get a group to standardize on a set, but they are not as clear-cut wins in my mind as the book make them out to be. (more…)

PBP: 085 Types of Documentation

Thursday, February 26th, 2015

This Practice starts off a new section, on documentation.  I think there’s at least one point in this chapter I disagree with Mr. Conway’s conclusions, but we’ll get there presently.  In general, I think he has valuable things to say, and the issues are worth thinking about and deciding on.

Documentation is important, and it’s something many of us are terrible at.

The first Practice he suggests is to be aware there are several kinds of documentation, and to separate the user documentation from the technical documentation. (more…)

PBP: 084 Loop Labels

Monday, February 23rd, 2015

The PBP suggests applying a label to each loop that is exited explicitly.  A simple request, but one I usually find vexing. (more…)

PBP: 083 Redoing

Thursday, February 19th, 2015

This Practice is to encourage the use of a for loop instead of while plus a counter.  It reminds us of redo, a Perl feature I always forget which lets us do the loop over at this iterator.  If the only place the while loop does not increment is to try again, a redo fits perfectly.  If the loop has to do more complex changes to the iterator – back up, start over at zero, whatever – then you’ll sill need the more complex while+counter. (more…)

PBP: 082 Distributed Control

Monday, February 16th, 2015

Mr. Conway disagrees with some of my college professors again.  He says that it is not useful to abuse loop constructs just to consolidate control in a single location.  He is a hero for this stance. (more…)

PBP: 081 Linear Coding

Thursday, February 12th, 2015

This suggestion seems oddly worded to me, although I’m not sure I can think of a better one.  The book says, “Reject as many iterations as possible, as early as possible.”  Luckily, it goes on to explain what this means, as that isn’t – at least to  me – terribly clear.  It winds up being an extension of “coding in paragraphs” and is more about how to organize your code than how to format it.  I think I agree with this and do it all the time, despite having had many college professors claim it is the root of all evil. (more…)

PBP: 080 do-while Loops

Monday, February 9th, 2015

This suggestion from the PBP is simple: Don’t use do … while loops.  The reasoning is good and readable alternatives are provided.  I wind up having no trouble with this suggestion, although I wasn’t as happy with it when I first read it. (more…)

PBP: 079 Tabular Ternaries

Thursday, January 29th, 2015

Mr. Conway suggests that you can cascade uses of the ternary (?:) operator instead of an if-elsif-else chain.  He feels this is much more readable.  I strongly disagree. (more…)

PBP: 078 Value Switches

Monday, January 26th, 2015

The idea behind this Best Practice is to explain how a table lookup can be used instead of an if/elsif/elsif/elsif/elsif/else block to make selections from a set of constants.  This is almost always a good choice! (more…)

PBP: 077 Multipart Selections

Thursday, January 22nd, 2015

The PBP say “Avoid cascading an if.”  At first glance, this sounds like a pretty harsh suggestion.  As it turns out, I rarely ever have any issue following this suggestion.  Well organized code seems not to need long if/elsif/elsif/elsif/elsif/else blocks. (more…)