my @block; my $reject; while (<>) { if (/^interface/ .. /!/) { if (/shutdown/) { $reject = 1; @block = (); } if (not $reject) { unshift @block, $_; } } else { $reject = 0; if (@block > 0) { print @block; @block = (); } } }