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++; for(my $j=0;$FUNCTION_ARRAY[$i]->gi() eq 'Parameter';$j++) { if($FUNCTION_ARRAY[$i]->gi() eq 'Parameter') { my $temp_param = $FUNCTION_ARRAY[$i]->att('name'); $i++; for(my $k=0;$FUNCTION_ARRAY[$i]->gi() eq 'ParameterValue';$k++) { $DATA_HASH{$temp_func}->{$temp_param}->[$k]=$FUNCTION_ARRAY[$i]->att('value'); $i++; } if($FUNCTION_ARRAY[$i]->gi() eq 'TestFunction') { $i--; last; } } } } $i++; }