>>150 遅くなりましたがレスありがとうございました

自分なりにいろいろやってみたのですが、全く別の問題だと分かりました

$string = 'Watashi ga Kaita. Watashi ga Keshita';
while ($string =~ /Watashi/igo) {
 $value = 'Watashi(=Yamada)';
 $string =~ s/Watashi/$value/i;
}
print "$string";

なのですが、無限にループ(?)しているような状態になります
表示したい文字列は
Watash(=Yamada)i ga Kaita. Watashi(=Yamada) ga Keshita
にしたいのです
この例の場合には置換で1行で出来るのですが、whileループの中で
いろいろと処理をさせたいのでこの様にしています

$value = 'Ore(=Yamada)';
$value = 'Yamada';

のようにすると無限ループのような状態にならずに

Ore(=Yamada) ga Kaita. Ore(=Yamada) ga Keshita
Yamada ga Kaita. Yamada ga Keshita

と変換されて表示されるのでパターンマッチに使った文字列から
始めない場合はうまくいくようなのですがその理由も良くわかりません

なんかそもそもアプローチ自体がおかしいような気がしてきてはいるのですが
ご教授いただけるとうれしいです