use XML::Rules; my $parser = XML::Rules->new(rules=>{ widget => 'content by ID', language => 'pass no content', _default => 'no content' }); my $data = $parser->parse(\*DATA); use Data::Dumper; print Dumper($data); # $data{english}{1} == "input" __DATA__ input output eingabe ausgabe