I believe [id://TheDamian] recommends in Perl Best Practices to use msx on every regex. Of course I don't know if that's what is going on here, but I find it to be good advice; it doesn't hurt anything to have them on there, and if you add a "." to your regex someday it'll work by default (assuming that "works" means ". matches a newline", which it does to me intuitively). I've been bitten by "." not matching a newline before.
According to Apocalypse 5, in Perl6 "." will always match newline, and ^ and $ will always have a single meaning, so we thankfully won't have this problem. | [reply] |
Well, if that's what he actually recommends, I'll politely ignore his recommendation. Most of the time you don't need /s or /m. They're useless if you aren't working with multi-line strings. If you are working with multi-line strings, then you may very well want either the behavior you get with them or without them. In that case, you really should know exactly what you are trying to do and use them or not as is fitting, not because you read a book that said use them by default. IMHO, of course.
-sauoq
"My two cents aren't worth a dime.";
| [reply] |
I think it's not so much a matter of "not knowing what you're doing", as wanting the regex engine to be consistent in that one symbol always means one thing.
If you use /ms all the time, then \A always means "beginning of the string", ^ means "beginning of a line", \z means "end of the string", $ means "end of a line, . means "any character", and [^\n] means "any character but a newline".
You lose no functionality, and you gain the benefit of consistency (and possibly intuitiveness, depending on your intuition). You also partially eliminate what the Apocalypse calls the "end-weight problem", which I assume means that you have no idea what your regex is doing until you scan all the way to the end to see the modifiers. Whether this is really a problem is debatable, and you still have i and g (etc.) to grapple with in any case.
Of course you also lose a bit of conciseness, which is a minus. It's just a question of style. TMTOWTDI
| [reply] [d/l] [select] |
Just be careful you know why you're doing something, otherwise you're just Cargo cult programming. Which, I've noticed, can be quite frowned upon around here. Although I've never seen anyone accuse followers of TheDamian or merlyn's styles called for Cargo culting before.
| [reply] |