Brace and parenthesize in K&R style. [Bracketing]
Separate your control keywords from the following opening bracket. [Keywords]
Don't separate subroutine or variable names from the following opening bracket. [Subroutines and Variables]
Don't use unnecessary parentheses for builtins and "honorary" builtins. [Builtins]
Separate complex keys or indices from their surrounding brackets. [Keys and Indices]
Use whitespace to help binary operators stand out from their operands. [Operators]
Place a semicolon after every statement. [Semicolons]
Place a comma after every value in a multiline list. [Commas]
Use 78-column lines. [Line Lengths]
Use four-column indentation levels. [Indentation]
Indent with spaces, not tabs. [Tabs]
Never place two statements on the same line. [Blocks]
Code in paragraphs. [Chunking]
Don't cuddle an else. [Elses]
Align corresponding items vertically. [Vertical Alignment]
Break long expressions before an operator. [Breaking Long Lines]
Factor out long expressions in the middle of statements. [Non-Terminal Expressions]
Always break a long expression at the operator of the lowest possible precedence. [Breaking by Precedence]
Break long assignments before the assignment operator. [Assignments]
Format cascaded ternary operators in columns. [Ternaries]
Parenthesize long lists. [Lists]
Enforce your chosen layout style mechanically. [Automated Layout]