http://www.perlmonks.org?node_id=1199084


in reply to How do you use a variable value within a regular expression pattern properly?

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:

if( $string=~/ ^ $myvar REC: (.*) /x )

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):

if( $string=~/ ^ \Q$myvar\E REC: (.*) /x )

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:(.*)/)