1

親愛なる Stackoverflow と Perl の同志:

Perl について少し質問があります。ログ リーダーを書いています。ログフォーマットはこんな感じ

    2013-05-27T19:01:23 [INFO] item_id:1, state:start at Reader.pm line 23
    2013-05-27T19:01:29 [INFO] item_id:2, state:pause at Reader.pm line 23
    2013-05-27T19:01:30 [INFO] item_id:1, state:start at Reader.pm line 23

...

私の目標は、item_id:1 などの特定の item_id が示す state:start の数を数えることです。この場合は 2 にする必要があります。

これまでのところ、私が考えたのは言葉のカウンターです:

    sub count {
    my $count_start = 0;

    open (MYFILE, $file_location) or die "Wrong filename";
    while ($file_location = <MYFILE>){
            while ($file_location =~ /\bstart\b/ig){
                    $count_start++;
            }
    }
    close (MYFILE);
    return $count_start;
    }

ただし、「start」が何回出現するかではなく、「start」と「id」が同じ行に何回出現するかをカウントする必要があります。正規表現を追加する必要があることはわかっていますが、何もわかりません。何か案は?

よろしく!

4

2 に答える 2