my $data = $xml->XMLin("$fail", ForceArray => 1); #### my $numclients = @{$data->{items}[0]->{client}}; for (my $i=0; $i<$numclients; $i++) { my $clientname = $data->{items}[0]->{client}[$i]->{name}[0]; my $numsites = @{$data->{items}[0]->{client}[$i]->{site}}; for (my $s=0; $s<$numsites; $s++) { my $sitename = $data->{items}[0]->{client}[$i]->{site}[$s]->{name}[0]; my $numservs = @{$data->{items}[0]->{client}[$i]->{site}[$s]->{servers}}; my %servers; my @fails; my $report; for (my $sv=0; $sv<$numservs; $sv++) { if ($data->{items}[0]->{client}[$i]->{site}[$s]->{servers}[$sv]->{server}[0]->{name}[0]) { my $server = $data->{items}[0]->{client}[$i]->{site}[$s]->{servers}[$sv]->{server}[0]->{name}[0]; eval { my $numfails = @{$data->{items}[0]->{client}[$i]->{site}[$s]->{servers}[$sv]->{server}[0]->{failed_checks}}; for (my $fc=0; $fc<$numfails; $fc++) { my $numchecks = @{$data->{items}[0]->{client}[$i]->{site}[$s]->{servers}[$sv]->{server}[0]->{failed_checks}[$fc]->{check}}; for (my $check=0; $check<$numchecks; $check++) { if ($data->{items}[0]->{client}[$i]->{site}[$s]->{servers}[$sv]->{server}[0]->{failed_checks}[$fc]->{check}[$check]->{dsc_247}[0] == 1) { my $description = $data->{items}[0]->{client}[$i]->{site}[$s]->{servers}[$sv]->{server}[0]->{failed_checks}[$fc]->{check}[$check]->{description}[0]; if ($description !~ /Performance Monitoring/ ) { push (@fails, $description); $report = 1; } } } } }; # End eval eval { if ( @{$data->{items}[0]->{client}[$i]->{site}[$s]->{servers}[$sv]->{server}[0]->{overdue}[0]->{description}[0]} ) { my $overdue_ref = @{$data->{items}[0]->{client}[$i]->{site}[$s]->{servers}[$sv]->{server}[0]->{overdue}[0]->{description}[0]}; push (@fails, $overdue_ref); $report=1; } }; # end eval