In that case, your script would print out the results for each
time interval and then go on to evaluate the next lines of
the logfiles, like this:
while(<>) {
$timestring = $_ =~ $some_regexp;
$min = &get_nr_of_mins ($timestring);
if(/start:/) {
/split/ and ++$split;
/filter/ and ++$filter;
}
elsif(/finish:/) {
/split/ and --$split;
/filter/ and --$filter;
}
if($min % $granularity == 0) {
print "$time: $split, $filter\n";
}
}
(note, that this gives you the number of processes at the time
of the last line eaten from the logfile, not an average value for the last interval).
OTOH, if you want to do more sophisticated analysis of the
logfile, this approach might be too simple.