-PR-
締切済み

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

  • 困ってます
  • 質問No.9361831
  • 閲覧数291
  • ありがとう数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
レベル9

ベストアンサー率 30% (22/71)

全部取り出すのとたいして変わらないけど
$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で解決しましたか?
関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

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

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

特集


開業・独立という夢を持つ人へ向けた情報満載!

ピックアップ

ページ先頭へ