親愛なる 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」が同じ行に何回出現するかをカウントする必要があります。正規表現を追加する必要があることはわかっていますが、何もわかりません。何か案は?
よろしく!