$VAR1 = { 'banana' => { 'date' => '1231210' }, 'apple' => { 'time' => '235959', 'date' => '1231210' } }; #### use strict; use warnings; use XML::Rules; use Data::Dumper; my @rules = ( _default => sub { "%".$_[0] => {$_[1]->{name} => $_[1]->{value}}}, main => 'pass no content', ); my $text=< EOF my $p = XML::Rules->new( rules => \@rules, ); my $x = $p->parse($text); print Dumper $x;