※ ChatGPTを利用し、要約された質問です(原文:perlで置換をするプログラムを作成したい
)
perlで置換をするプログラムを作成したい
このQ&Aのポイント
ウエブの更新プログラムをperlで作成しています。以下の条件式でうまく置換できないときがあります。通常の文字は置換できたのですが、以下のようなリンクを変えようとすると結果が変わりませんでした。
プログラムを確認してみたところif($get_csv =~ /$oldcont/i)で条件式にうまくヒット出来ていない感じです。タグ禁止処理が悪さしているのがわかり、タグ禁止処理は解除いたしました。それでもなお動作しませんでした。
何か不足しているものがありましたらご指摘ください。お手数かけます。ご指導をよろしくお願いいたします。
perlで置換をするプログラムを作成したい
ウエブの更新プログラムをperlで作成しています。
以下の条件式でうまく置換できないときがあります。
(ここから)
$oldcont ="書き換え前のコメント";
$newcont ="書き換え後のコメント";
$get_csv = get("http://hoge.foo/index.html");
if($get_csv =~ /$oldcont/i) {
$get_csv =~ s/$oldcont/$newcont/g;
open(DB3,">./index.html") || &error("Can't write ./index.html");
flock(DB3, 2);
print DB3 "$get_csv";
close(DB3);
}
以下略
(ここまで)
通常の文字は置換できたのですが、以下のようなリンクを変えようとすると結果が変わりませんでした。
oldcont <a href="http:/hoge.foo/one.html">
newcont <a href="http://hoge.foo/two.html">
プログラムを確認してみたところ
if($get_csv =~ /$oldcont/i)
で条件式にうまくヒット出来ていない感じです。
タグ禁止処理が悪さしているのがわかり、タグ禁止処理は解除いたしました。
それでもなお動作しませんでした。
何か不足しているものがありましたらご指摘ください。
お手数かけます。ご指導をよろしくお願いいたします。
お礼
回答ありがとうございます。 早速やってみました。 >if($get_csv =~ /\Q$oldcont\E/i) { >$get_csv =~ s/\Q$oldcont\E/$newcont/g; バッチリ動作しました!! ありがとうございます!! とっても助かりました。これで作業が進められます。