By Thursday, the Perl script was still ugly. But it was consistent in its ugliness. Every else was cuddled. Every subroutine had a return . Every filehandle used the three-argument open . The auditors, who didn’t read Perl, saw a printed metric: “Cyclomatic complexity: reduced 42%.” They signed off.

He felt a pang of shame. The core script had neither.

He thought of the thirty-seven lines where $a held a transaction ID and $b held a customer’s social security number.

Chapter 18: Use named regex captures, not $1 , $2 , $3 .

That Friday, Erwin closed the PDF for the last time. He didn’t delete it. He renamed it to perl_best_practices_FINAL_v2_FINAL.pdf —a small, ironic act of rebellion.

The junior dev, remorseful, asked how to help. Erwin slid her a USB stick. “Read Chapters 1 through 7. Then rename every $temp variable to something that means something.”