good chemistry is complicated, and a little bit messy -LW |
|
PerlMonks |
Re: How do you use a variable value within a regular expression pattern properly? (updated)by haukex (Archbishop) |
on Sep 11, 2017 at 11:43 UTC ( [id://1199084]=note: print w/replies, xml ) | Need Help?? |
As an alternative to what 1nickt showed, there's also the /x modifier that allows you to insert whitespace in your regex, which also improves readability:
Also, Mind the meta!, that means if your $myvar contains any characters like the dot (.) and you don't want these to be interpreted as regex special characters, or any whitespace in the variable to be ignored under /x, then you need to wrap your string in \Q...\E (see also quotemeta):
Update: Added links to docs. Also added bit about whitespace in the variable under /x. Update 2: Just to be clear, I recommend you always use \Q...\E, even if you don't use /x, unless you specifically want regex metacharacters in $myvar to be treated as such and it comes from a trusted source! That is, if($string=~/^\Q$myvar\EREC:(.*)/)
In Section
Seekers of Perl Wisdom
|
|