in reply to Using the result of s///

The first example you give prints the result of the substitution (the result of $string =~ s/_/ /g). If you look at the documentation for s///, you will see that it returns the number of substitutions made. It's easier to see in code.
$string = 'This_has_underscores'; $result = $string =~ s/_/ /g; print $result;
That's what the first result is equal to. The second example prints the new $string, which is what you want in this case.

elusion :