use strict; use warnings; use XML::Simple; use DATA::Dumper; #Variable my $counter = 0; my $countertrans = 0; my $file = (\*DATA); my $arrays = [qw/trans item status assignee/]; my $opt = XMLin($file, keyattr => 1, forcearray => $arrays); my $id = 'maxis'; my $lastid = 'legas'; foreach my $trans (@{$opt->{'trans'}}) { my $transs = $opt->{'trans'}[$countertrans]{'kool'}; if ($transs eq 'max') { foreach my $item (@{$trans->{'item'}}) { my $currentid = $opt->{'trans'}[0]{'item'}[0]{'id'}; $counter++; if ($lastid eq $currentid) { $opt->{'trans'}[$countertrans]{'item'}[$counter]{'id'} = $id || die "Error!!"; $opt->{'trans'}[$countertrans]{'item'}[$counter]{'status'} [0]= 'con' || die "Error!!"; $opt->{'trans'}[$countertrans]{'item'}[$counter]{'assignee'}[0] = 'Jill' || die "Error"; print "My cuurent ID is $currentid, $item counter is $counter\n"; print "ID is $id\n"; print XMLout($opt); exit 1; } } } print "$trans"; $countertrans++ } print "Nothing"; __DATA__ contacted jack contacted jack