【Perl】初心者コーナーPart10
■ このスレッドは過去ログ倉庫に格納されています
0189149
02/03/04 02:25ID:zvOvcxtF自分なりにいろいろやってみたのですが、全く別の問題だと分かりました
$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
と変換されて表示されるのでパターンマッチに使った文字列から
始めない場合はうまくいくようなのですがその理由も良くわかりません
なんかそもそもアプローチ自体がおかしいような気がしてきてはいるのですが
ご教授いただけるとうれしいです
■ このスレッドは過去ログ倉庫に格納されています