use strict; use warnings; use strict; while () { if (/^Curve(\d):/.../^\s*$/) { if (defined($1) && $1==1 && /^\d/) {print "C1: $_\n";}; if (defined($1) && $1==2 && /^\d/) {print "C2: $_\n"}; } } __DATA__ Curve1: 123, 456 end 123 Curve2: 789, 101 end 123 #### C1: 123, 456 C2: 789, 101