Much like empty strings, the PBP suggests being careful of how you write single character strings. It points out a number of them it considers “ambiguous”, including:
$thing = ' '; $thing = ' '; $thing = ',';
For the comma, other punctuation, and whitespace, the PBP suggests using q{}, which I find a terrible suggestion for anything, ever. q{} and qq{} are some of my least favorite things to read in Perl, and the idea that engineers can’t figure out how many spaces are between a pair of quotes confounds me. I can’t think that telling the difference between one, two, or three spaces between {} marks will be any better.
Heck, even my blog has context coloring. Let’s not make our lives harder than we need to!
For tabs, the PBP suggests using \t, which I do agree with. \t interpolates to the next tab stop and is an easy lazy way to line things up. I don’t know if it is reliable enough to do complex things but for quick hacks or debug code it’s really a great character escape. I’m an old-time C guy, though, so know them all anyway.
I think this is one perlcritic actually takes further and demands any string without letters be marked with q{}. No. No. No. I kill this right away.