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

cLive ;-) has asked for the wisdom of the Perl Monks concerning the following question:

For tidiness, I want to store a bunch of regular expressions outside of a script, but I can't work out how to get interpolation of the replace string correct. Here's a simple example:

#!/usr/bin/perl use strict; use warnings; # works as expected my $text = 'Hello world'; $text=~ s/(\w+)/$1 Perl/; print "Regular regex: $text\n"; # but now try with variable interpolation my $text2 = 'Hello world'; my $match = qr/(\w+)/; my $replace = '$1 Perl'; $text2 =~ s/$match/$replace/e; # not what I want print "Interpolated regex: $text2\n";

I won't bore you with all the variations I've tried so far, but I've been playing with this for an hour (including qr and different modifiers) and it's driving me crazy. Any ideas?