Perl: assign a regexp search/replace to a variable
Often I will want to assign a variable to be a search and replace of another variable. Logically you might write it like this:
$str = "foofoofoobar";
$new = $str =~ s/foo/FOO/g;
# $new contains 3 because three things were replaced in the string
print "$new\n";
This will not work because you are assigning the number of replacements made to $new
. This is not what we wanted. Instead we want the search and replace to return the new string:
$str = "foofoofoobar";
$new = $str =~ s/foo/FOO/gr;
print "$new\n";
Note the /r
after the regular expression. Documentation on /r
is in Perlop