for each CITY/replication node: my %v = (); $v{replication} = parsed replication value; $v{partno} = parsed Part_No value; for each AbCar node: my %v1 = %v; $v1{Ref} = parsed ref value; $v1{Fname} = parsed Fname value; # save %v1 here (to a db table or to a list) end for for each AbCarr node: my %v1 = %v; $v1{RefD} = parsed RefD value; $v1{Lic} = parsed Lic value; for each AbCarr/Warr node: my %v2 = %v1; $v2{VD} = parsed VD value; $v2{Billa1} = parsed Billa1 value; $v2{Billa2} = parsed Billa2 value; # save %v2 here end for for each AbCarr/ADCar node: my %v2 = %v1; $v2{REFI} = parsed REFI value; $v2{Carr} = parsed Carr value; # save %v2 here end for end for end for