use strict; use warnings; use XML::Simple; use CGI ':standard'; use Data::Dumper; #Variable my $countersubs = 0; my $counterchan = 0; my $subprod = 'asa'; my $counterprod = 0; my $prodid = '3'; my $schan = 'j'; print header; my $arrays = [qw/subcategory name packaging_qty receipe description product paragraph comments channel brand conditionning product_id heading photo/]; print "Test2\n"; my $category = XMLin(\*DATA, keyattr => 1, forcearray => $arrays) || die "can't open the file"; foreach my $subcategory (@{$category->{'subcategory'}}) { my $inssub = $category->{'subcategory'}[$countersubs]{'name'} || die "An error occur!"; if ($inssub eq $subprod) { foreach my $product (@{$subcategory->{'product'}}) { foreach my $product_id (@{$product->{'product_id'}}) { if ($product_id eq $prodid) { foreach my $channel (@{$product->{'channel'}}) { if ($channel eq $schan) { delete $category->{'subcategory'}[$countersubs]{'product'}[$counterprod]{'channel'} || die "Error"; print XMLout($category, xmldecl => '', rootname =>'category'); exit 1; } $counterchan++; } } } $counterprod++; } } $countersubs++; } __DATA__ jk Coffeed d g d d d d dsfs Coffee3 j j 3 3 3 3