my @errlist = (...); my @difflist; my $diff = 23; my $match; do {   my $line = pop @errlist || last;   $match = ($line =~ /^-- (\d+)/);   unshift @difflist, $line; } until $match == $diff;