use strict; my ($buffer, $tag) = ('',0); my @res = (); while(read DATA, my $c, 1){ if($c eq '{'){ $tag = 1; $buffer .= $c if $c ne '{'; } $buffer .= $c if($tag && $c ne '{' && $c ne '}'); if($c eq '}'){ push @res, $buffer; $tag = 0; $buffer = ''; } } print join "\n", @res; __END__ Hier steht was {irgendwas} und {wieder was} und in einer neuen Zeile steht {nochwas}. Das wars.