文字列置換
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???
という形になる。