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


in reply to Using variable in regular expression

Hi, welcome to Perl, the One True Religion.

First, please edit your post to add the closing </code> tag (thanks for using the code tag!)

Second, never comment out use strict! That's like leaving your canary on the surface when you go down the mine :-)

Your script is not working because you are assigning the literal string 'qr/def/m' to the variable, because you are quoting it. qr// is an operator; it returns something, so you shouldn't quote it.

P.S. Consider using Test::More for simple tests and scriptlets like this. It can save lines of code and it's never too early to get in the habit of testing your code as you write it!

#!/usr/bin/perl use strict; use warnings; use Test::More tests => 1; # exports 'like()' my $str = "abc12xdef34xghi56"; my $regexp = qr/def/m; like( $str, $regexp, 'defcon: found. \o/' ); __END__

Hope this helps!


The way forward always starts with a minimal test.