use strict; use XML::Simple; my $data = XMLin( './data.xml', keyattr => {field => 'name'}, forcearray => [ qw(field number required) ] ); $data->{fields}->{field}->{foo}->{number}->[0] += 10; $data->{fields}->{field}->{bar}->{number}->[0] += 10; print XMLout($data, keyattr => {field => 'name'}, rootname => 'data');