• 締切済み

Perl ログファイルの一部修正

ご教示お願い致します。 $log = "ファイルの時間"; @NEWTM = grep(/,$log,/, @DATA); last if ($j > @NEWTM); $data = $NEWTM[$j]; my ($LogNo,$log,$Logname,$Logtitle,$Logtext,$Logpassword,$Logip,$Lognewtm,$Logcount) = split(/,/, $data); ++$Logcount; for my $j (0 .. $#DATA) { if ($DATA[$j] =~ /,$log/) { $DATA[$j] = "$LogNo,$log,$Logname,$Logtitle,$Logtext,$Logpassword,$Logip,$Lognewtm,$Logcount\n"; last; } } 各スレッドの単純なアクセスカウンタを設置しました。 my ($LogNo,$log,$Logname,$Logtitle,$Logtext,$Logpassword,$Logip,$Lognewtm,$Logcount) = split(/,/, $data); これは1発目に書き込まれたものを一度書き出し ++$Logcount; で+1をし、 $DATA[$j] = "$LogNo,$log,$Logname,$Logtitle,$Logtext,$Logpassword,$Logip,$Lognewtm,$Logcount\n"; 再度、書き込むという処理なのですが、 $Logcount以外は、書き出す必要もないですし、書き込む必要もありません。 この場合での$Logcountだけを書き換える処理をしたいのですが、どのようにするのでしょうか?

みんなの回答

  • Wap58
  • ベストアンサー率33% (29/87)
回答No.1

全部取り出すのとたいして変わらないけど $Logcountだならザックリとこんな感じ my $Log = "55,aa,44,bb,33,cc,22,1\n"; my ($zenbu,$Logcount) = $Log =~ m[(.+,)(\d+$)]; ++$Logcount; $Log = "$zenbu$Logcount"; print"$Log\n";

関連するQ&A