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"; } }