#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my @var = ( ['Hund/Katze/Maus', 10], ['Hund/Katze/Ratte', 9], ['Hund/Katze/Hase', 8], ['Wolf/Katze/Maus', 7], ['Wolf/Katze/Ratte', 6], ['Wolf/Katze/Hase', 5], ['Hund/Tiger/Maus', 4], ['Hund/Tiger/Ratte', 3], ['Hund/Tiger/Hase', 2], ['Wolf/Tiger/Maus', 1], ); my $hashref = {}; for my $v ( @var ) { my $val=$v->[1]; my @arr=split('/',$v->[0]); my $tmp = \$hashref; for(@arr) { $$tmp->{summe}+=$val; $tmp = \$$tmp->{childs}->{$_}; } $$tmp->{summe}+=$val; } print Dumper($hashref); # zugriff: print "Summe Wolf/Katze = ".$hashref->{childs}->{Wolf}->{childs}->{Katze}->{summe}."\n";