use warnings; use strict; my $count = 0; while () { if (/START/ .. /END/) { $count++ if /START/; print if ($count == 2); } } __DATA__ abc efg ... START lines NOT to be extracted 1 END START lines to be extracted END START lines NOT to be extracted 2 END START lines NOT to be extracted 3 END #### START lines to be extracted END #### lines to be extracted lines NOT to be extracted 3