while ( defined ($_ = ) ) { if (/RULE=$rule/../^END$/) { chomp $_; if ($_ =~ /^NUMOFRULES/) { # Get the number of rules @rulenos = split(/=/); } my $e = $rulenos[1]; if (/^STMT1=BEGIN$/../^STMT$e=END$/) { if ( !($_ =~/^STMT/)) { print $_; } } # for ($i = 1; $i <= $rulenos[1]; $i++) { # if (/^STMT$i=BEGIN$/../^STMT$i=END$/) { # if ( !($_ =~/^STMT/)) { # print $_; # } # } # } } } __DATA__ RULE=test BEGIN NUMOFRULES=2 STMT1=BEGIN A B C STMT1=END STMT2=BEGIN X Y Z STMT2=END