use Parse::RecDescent; use Data::Dump::Streamer; my $grammar = q{ test: expr(s) /^\Z/ {return $item{"expr(s)"};} expr: name '=' /\d+/ { $return = {$item{name} => $item[-1]}; 1; } name: /\w+/ }; my $parser = new Parse::RecDescent ($grammar); Dump ($parser->test ("x = 1\ny = 2\nz = 3")); #### $ARRAY1 = [ { x => 1 }, { y => 2 }, { z => 3 } ]; #### $HASH1 = { x => 1, y => 2, z => 3 };
## $ARRAY1 = [ { x => 1 }, { y => 2 }, { z => 3 } ]; ##
## $HASH1 = { x => 1, y => 2, z => 3 };