Don't align things vertically for the sake of aligning them, align them so that they're readable! The fragment above borders on obfuscation. There's a mind-numbing repetitive pattern on the right, and this

I did move the '?' and the ';' to make it easier to
cut-copy and paste it ... but, man have we gotten
away from a simple solution:

Tuck the check for the value of $foo away in the
subroutines themselves, redundant, but that should be a
piece of cake to follow and seems more configurable in the
long run as well as very straight foward. The redundant
pieces will end up becoming different anyway, thanks to
Murphy's Law. ;)