It gets unreadable for all but the most trivial of expressions
Right. It's possible to back yourself (or front yourself, if you're twisted :) into monstrosities with it. The classic C 12 Days of Christmas puts it to good (?) use, among its other distortions.
Like a lot of things in perl (or any language, really), you just have to keep an eye on yourself to be sure you stay inside the lines. My two rules of thumb are length and nestedness:
- If I start nesting, that's a sign I should write it out in more explicit form
- If it starts getting much longer than 1 line, or there're more than maybe one or two logical ops (&&, ||, etc) in the condition, I should probably switch to if/else
(None hard rules of course, but signs that I'm wandering off the beam and should take a step back to reevaluate)