#!/usr/local/bin/perl -w use strict; use XML::Simple; local $/=undef; my $input=; my $xml=XMLin($input, 'forcearray' => 1); $xml->{'fields'}->[0]{'field'}{$_}{'number'}->[0] += 10 for keys %{$xml->{'fields'}->[0]{'field'}}; print XMLout($xml, 'rootname' => 'data'); __DATA__ 2 Y 1 N _END__ 11 N 12 Y #### my $xml=XMLin($input, 'forcearray' => [('number','required')]); $xml->{'fields'}{'field'}{$_}{'number'}->[0] += 10 for keys %{$xml->{'fields'}{'field'}}; print XMLout($xml, keyattr => {field => 'name'}, 'rootname' => 'data');