- 締切済み
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だけを書き換える処理をしたいのですが、どのようにするのでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Wap58
- ベストアンサー率33% (29/87)
全部取り出すのとたいして変わらないけど $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";