use warnings;
use strict;
my $data = do { open my $fh, '<', 'sample.txt' or die $!;
local $/; <$fh> }; # slurp whole file into memory
my $regex = qr{
^ \s*APP>\sSTART_PARTU_8X8 \n
^ \s*APP>\sPARTITION_SPLIT \n
(.*?)
^ \s*APP>\sEND_PARTU_8X8 $
}msx;
if ($data=~$regex) {
print $1;
}
####
use warnings;
use strict;
my $beg1 = qr/^\s*APP>\sSTART_PARTU_8X8$/;
my $beg2 = qr/^\s*APP>\sPARTITION_SPLIT$/;
my $end = qr/^\s*APP>\sEND_PARTU_8X8$/;
open my $fh, '<', 'sample.txt' or die $!;
my $prev_line;
my $state = 'not_in_block';
while ( my $line = <$fh> ) {
if ( $state eq 'not_in_block' ) {
if ( $prev_line && $prev_line=~$beg1 && $line=~$beg2 ) {
$state = 'am_in_block';
}
}
elsif ( $state eq 'am_in_block' ) {
if ( $line=~$end ) {
$state = 'not_in_block';
}
else {
print $line;
}
}
} continue { $prev_line = $line }
close $fh;
####
START_PARTU_4X4
........
START_PARTU_4X4
........
START_PARTU_4X4
........
START_PARTU_4X4
........