亲爱的 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,例如 item_id:1,显示。在这种情况下,它应该是 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”出现在同一行中有多少次。我知道我必须添加一些正则表达式,但无法弄清楚任何事情。有任何想法吗?
问候!