use strict; use XML::Rules; my $reader = XML::Rules->new( rules => { _default => 'raw', head => 'content array', TEI => 'pass no content', } ); my $heads = $reader->parsefile( $small_file_name )->{head}; #use Data::Dumper; #print Dumper($heads); #### my $updater = XML::Rules->new( style => 'filter', rules => { _default => 'raw', head => sub { my ($tag, $attr) = @_; $attr->{_content} = shift(@$heads); return $tag => $attr; } } ); $updater->filterfile( $big_file_name, $updated_big_file_name);