文字列置換

my $str = 'it was sunny!';
substr($str, 7, 5, 'rainy');

上記のようにsubstrで置換することも可能だが
s///で置換すれば、文字列の位置が分からなくても置換することが出来る。

my $str1 = 'it was sunny!';
$str1 =~ s/!/?/;

print "\$str1 = $str1\n";

とすれば結果は…

it was sunny?

となる。
 
s///で置換する際、文字列の最初から見て一番初めに見つかった文字を置換する。

my $str2 = 'it was sunny!!!';
$str2 =~ s/!/?/;

print "\$str2 = $str2\n";

と書いた場合の結果は…

it was sunny?!!

という形になる。
 
■追記
s///で、該当する文字列を全て置換する場合は下記のように記述する。

my $str3 = 'it was sunny!!!';
$str3 =~ s/!/?/g;

print "\$str3 = $str3\n";

この結果は

it was sunny???

という形になる。