人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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 = "";
}
宜しくお願いします。

●質問者: mtx50r
●カテゴリ:ウェブ制作
✍キーワード:Area dat EQ ken KT
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● ootatmt
●50ポイント

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

if($um ne "ari"){

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

print KTE "$shi\n";

close KTE;

} else {

$um = "";

}

◎質問者からの返答

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


2 ● todo_todo
●50ポイント

Perl Lesson 4

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

◎質問者からの返答

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ