use strict; use XML::Rules; use Data::Dumper qw(Dumper); my $parser = XML::Rules->new( stripspaces => 15, rules => { 'type,author' => sub { return ( $_[0].'Id' => $_[1]->{id}, $_[0] => $_[1]->{_content}); }, field => sub { return ( $_[1]->{name} => $_[1]->{_content}); }, data => 'pass no content', node => 'pass no content' } ); print Dumper($parser->parse(\*DATA)); __DATA__ note haukex <p>More fun facts! I once wrote a script to search a word list for words that make valid regexen which convert one valid word into another.</p> <c> $ perl -le 'print bangs =~s engender' bands $ perl -le 'print halved =~s avatar' halted $ perl -le 'print stove =~s evener' stone </c> 11100593 11100640 21