締切済み

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

  • 困ってます
  • 質問No.9361831
  • 閲覧数300
  • ありがとう数0
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 62% (10/16)

ご教示お願い致します。

$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
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全1件)

  • 回答No.1

ベストアンサー率 31% (23/73)

全部取り出すのとたいして変わらないけど
$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";
OKWAVE 20th Be MORE ありがとうをカタチに
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


より良い社会へ。感謝経済プロジェクト始動

ピックアップ

ページ先頭へ