my %DATA_HASH; for(my $i=0;$i<@FUNCTION_ARRAY;$i++) { if($FUNCTION_ARRAY[$i]->gi() eq 'TestFunction') { my $temp_func = $FUNCTION_ARRAY[$i]->att('name'); $i++ while($FUNCTION_ARRAY[$i]->gi() ne 'Parameter'); my $temp_param = $FUNCTION_ARRAY[$i]->att('name'); $i++ while($FUNCTION_ARRAY[$i]->gi() ne 'ParameterValue'); push(@{$DATA_HASH{$temp_func}->{$temp_param}},$FUNCTION_ARRAY[$i]->att('value')); } }