Pre, Post, and Match
And now on the Regex Programme Today, we have guest stars Prematch, Postmatch and Match. All of whom are going to slow our entire programme down, but are useful anyway :
$_='I am sleepy....snore....DING ! Wake Up!'; /snore/; # look, no parens ! print "Postmatch: $'\n"; print "Prematch: $`\n"; print "Match: $&\n";
If you are wondering what the difference between match and using
parens is you should remember than you can move the parens around, but you
can't vary what $& and its ilk
return. Also, using any of the above three operators does slow your entire
program, whereas using parens will just slow the particular regex you use them
for. However, once you've used one of the three matches you might as well use
them all over the place as you've paid the speed penalty. Use parens where
possible.