use strict; require XML::Simple; my @usr_list = ( q{u00157:STAF:Mickey:Request:}, q{u14318:STAF:Sean:Request:}, q{u10044:ENF:Carol:Response:}, q{u11162:STAF:Sarah:User:}, q{u03763:ENF:Laura:Response:}, q{u12093:RES:Tim:Request:}, q{u12091:RES:Maria:Request:}, q{u14380:RES:Tom:Request:}, ); my ($s1, $s2, $s3, $s4); my $xs = XML::Simple->new(); print "\n\n"; foreach (@usr_list) { ($s1, $s2, $s3, $s4) = split ":"; print $xs->XMLout($xs->XMLin("userxml.tmp", ForceArray => 1, KeepRoot => 1, Variables => {s1 => $s1, s2 => $s2, s3 => $s3, s4 => $s4, } ), RootName => undef, ); } print "\n";