#! perl -slw use strict; chomp( my @events = ); for( my( $lastA, $lastB ) = ( 0, 0 ); $lastA < @events and $lastB < @events; ++$lastA, ++$lastB ) { ++$lastA until $events[ $lastA ] =~ m[^a\s(\d+)]; my $aTime = $1; ++$lastB until $events[ $lastB ] =~ m[^b\s(\d+)]; my $bTime = $1; print "$events[ $lastB ] - $events[ $lastA ] := ", $bTime - $aTime; } __DATA__ a 123 a 125 b 127 a 129 a 130 b 131 a 132 b 133 #### C:\test>junk b 127 - a 123 := 4 b 131 - a 125 := 6 b 133 - a 129 := 4