$ perl -e ' > use strict; > use warnings; > my @in = split /\n/, > "a 123 > a 125 > b 127 > a 129 > a 130 > b 131 > a 132 > b 133"; > > my @a_buff; > for (@in) { > push @a_buff, $_ and next if /a/; > my $aa = shift @a_buff; # avoid to use the $a special variable > my $diff = $2 - $1 if "$aa - $_" =~ /(\d+)[^\d]*(\d+)/; > print "$aa ; $_ => $diff\n"; > } > ' a 123 ; b 127 => 4 a 125 ; b 131 => 6 a 129 ; b 133 => 4