#!/usr/bin/perl -w use strict; use XML::Simple; my $xs = XML::Simple->new( forcearray => [ 'item' ], keyattr => { item => 'id' }, rootname => 'opt', ); my $opt = $xs->XMLin(\*DATA); $opt->{trans}->{item}->{2} = { status => 'contacted', assignee => 'jill' }; print $xs->XMLout($opt); __DATA__