> すみません 質問の仕方に問題があったようです
> ある文字列の特定の単語を別の単語に置き換えたいです
> そのとき置き換える単語は複数あってそれの一覧をファイルから読めるようにしたいのですがどうしたらよいでしょう?
#2 の答えではヒントにならないですか?
質問の仕方云々のせいで二つもコーディングパターンを作らないといけないのはかなり癪です。
ご自身の努力ではどの程度までいったんでしょうかね。
サンプルとして、
[chikan.dat]
---
# 置換対象の文字
TARGET = あら!
TARGET = おや!
TARGET = まあ!
TARGET = やあ!
# 置換後の文字
REPLACED = なんてこったい!
---
[chikan.pl]
---
# 元の文字列
my $string =
q{あら!あんなところにryuta_moがいるわ
おや!あんなところにnipotanがいるよ
まあ!ryuta_mo
やあ!nipotan
おひさしぶり};
# データファイルからの読込みを格納するハッシュ
my %data = ();
# データ取得
open FH, 'chikan.dat' || die $!;
while(<FH>){
next if /^\s*#/;
next if /^\s*$/;
chomp;
if(/^(.+?)\s*=\s*(.+)$/){
$data{$1} .= "\0" if(exists $data{$1});
$data{$1} .= $2;
}
}
close FH;
# 置換処理
map{
$string =~ s/\Q$_\E/$data{REPLACED}/g
}(split /\0/, $data{TARGET});
# 画面出力
print $string;
---
こんなんでどうでしょう?
お礼
ありがとうございます 無事解決しました