Perlの置換え演算子(s///)について。

[上に] [前に] [次に]
Yuuki [E-Mail] 2000/01/08(土) 08:06:44
始めまして。
Perlの置換え演算子(s///)についてです。

$c = 'ttt';
$c =~ s/t/y/g;
というコードがあった場合、
$c =~ s/t/y/g;で$cは yyy になります。
ここでは3回置き換えて(それとも3回マッチした? どういえばいいのかわからない)ますよね?
この置き換えた回数(マッチした回数?)がセットされている変数ってありますか?

Yuuki [E-Mail] 2000/01/08(土) 08:34:32
自分の持ってる本、
CGI&Perlポケットリファレンス(技術評論社) と 始めてのPerl(oreilly)
をもう一度探してみたんですが、見当たらない。(^^;
ないのかなぁ。
あっても良さそうな変数なのに。:-)

Yuuki [E-Mail] 2000/01/08(土) 09:03:14
しつこく探してみましたが見つかりませんでした:-)
やはり
$c ='ttt';
$count = 0;

while ( $c =~ s/t/y/ ) {
    $count++;
}
のような方法をとるしかないのかも.....

Aurai 2000/01/08(土) 09:46:25
$c = "ttt";
print $c =~ s/t/y/g;

s/// の返値に注目

Yuuki [E-Mail] 2000/01/08(土) 21:57:37
[[解決]]
> s/// の返値に注目
気がつかなかった。(^^;;
Auraiさんありがとうございます。
これでやっとスッキリした。
解決。

# 今、CGI&Perlポケットリファレンスのs///を見ると
# > 置き返した回数。不成功時は儀('')。
# と書いてあるのになんでわからなかったんだろう..

[上に] [前に] [次に]