$string = "firstword secondword"; print "original: $string\n"; # doesn't work $search = '(second.+)'; $replace = '$1 thirdword'; ($varsub = $string) =~ s/$search/$replace/; print "variable substitution: $varsub\n"; # does work ($direct = $string) =~ s/(second.+)/$1 thirdword/; print "direct: $direct\n";