# ... my $flag = 0; while ($line = ) { if ( $line =~ m{$BString} .. $line =~ m{$EString} ) { # Merker setzen, ob bestimmter String im Block vorkommt $flag = 1 if $line =~ m{$NoString}; push @data, $line; # Merker ist gesetzt und Blockende ist erreicht if ( $flag == 1 && $line =~ m{$EString} ) { $flag = 0; # tu was extra mit @data } } } # ...