format_c@server:~/perl_scripts> cat test.pl && perl test.pl #!/usr/bin/perl use strict; use Data::Dumper; use Parse::RecDescent; my @item; local $/; my $text = ; my $g = q~ file: entry(s?) {$item[1]} entry: 'schluesselwort' /\d+/ '{' option(s?) '}' {[$item[2], $item[4]]} option: /[\w\d]+/ /[\w\d]+/ ';' {[$item[1], $item[2]]} ~; my $parser = Parse::RecDescent->new($g); $parser->entry($text); print Dumper \@item; schluesselwort schluesselwert { option1 wert1; option2 wert2; muell; } schluesselwort andererschluesselwert { option1 wert1; option2 wert2; anderermuell; option3 "wert3"; } schluesselwort nocheinandererschluesselwert { option1 wert1; option2 wert2; muell; } $VAR1 = []; format_c@server:~/perl_scripts>