perlの書き方について初歩的な質問なのですが、

ファイルの中から「特定の文字列」を検索して「特定の文字列」が、無い場合に「特定の文字列」を書き足すプログラムを書きたいのですが、どうしてもうまくいきません。
すでに書かれているものまで出力されてしまうのを
書かれている物は出力しないようにしたいです。
現状のソースの一部です。
#K_tempからshiを検索/無ければK_tempにshiを追記。
open KT,"<../area/$ken/k_temp.dat";
while(<KT>){
my $kt = $_;
if($kt eq $shi){
$um = "ari";
}
}
close KT;
if($um ne "ari"){
open KTE,">>../area/$ken/k_temp.dat";
print KTE "$shi\n";
close KTE;
$um = "";
}
宜しくお願いします。

回答の条件
  • 1人2回まで
  • 登録:2007/01/28 00:34:46
  • 終了:2007/01/28 00:59:43

回答(2件)

id:ootatmt No.1

ootatmt回答回数1307ベストアンサー獲得回数652007/01/28 00:46:22

ポイント50pt

後半部分を以下のように変えてみてはいかがですか。

if($um ne "ari"){

open KTE,">>../area/$ken/k_temp.dat";

print KTE "$shi\n";

close KTE;

} else {

$um = "";

}

id:mtx50r

有難うございます。今から試してみます。

2007/01/28 00:56:53
id:todo_todo No.2

todo_todo回答回数388ベストアンサー獲得回数142007/01/28 00:48:25

ポイント50pt

Perl Lesson 4

ぜんぜん的外れだったら申し訳ないのですが、読み込んだデータには改行コードが含まれているため、$kt eq $shiが成り立たないということはないでしょうか。

id:mtx50r

ずばりでした。きづかなかった自分が恥ずかしいです。ありがとうございました。

2007/01/28 00:58:26

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません