sub newtree { ... my $ref_liste1 = shift; my $knoten = undef; my $ref_wurzel = undef; for my $zzahl (@$ref_liste1){ #my $refvalue = $ref_wurzel; if ($knoten) { while (1) { if($zzahl < $knoten->{'zahl'}) if(defined($knoten->{'linksweg'})) { $knoten = $knoten->{'linksweg'}; } else { $knoten->{'linksweg'} = knot($zzahl); $knoten = $ref_wurzel; last; #Ende } } #wenns Links nicht mehr weiter geht, geh rechts weiter else { if ($zzahl >= $knoten->{'zahl'}) { if(defined($knoten->{'rechtsweg'})) { $knoten =$knoten->{'rechtsweg'}; } else { $knoten->{'rechtsweg'} = knot($zzahl); $knoten = $ref_wurzel; last; } } else { $ref_wurzel= knot($zzahl); $knoten = $ref_wurzel;} } } } } return $ref_wurzel; }