my $buffer; while () { $buffer = $1 if /^(john.*)/; if ($buffer && /^jacob/) { print "$buffer > $_"; $buffer = ''; } }