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…)
Author Archive
PBP: 083 Redoing
Thursday, February 19th, 2015PBP: 082 Distributed Control
Monday, February 16th, 2015Mr. 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, 2015This 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, 2015This 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, 2015Mr. 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, 2015The 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, 2015The 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…)
PBP: 076 List Processing Side Effects
Monday, January 19th, 2015Mr. Conway suggests the very firm, “Never modify $_ in a list function.” I’m torn on this. (more…)
PBP: 075 Complex Mappings
Thursday, January 15th, 2015The PBP suggests we factor complex map blocks into subroutines. Please, please do this! (more…)
PBP: 074 List Transformation
Monday, January 12th, 2015The last Best Practice suggested using map instead of a for loop to process lists. There is an exception suggested by the Best Practices; if you’re transforming a list in place, use a for loop. (more…)