my (%network, %NOA); use Class::Struct; struct Node => { score => '$', strange => '@', }; # network hash mit key P0, value=Node my $key = "P0"; my $first = Node->new(); $first->score(0.9); $network{$key} = $first; # der hash mit dem Wert, den nur eine Kopie von %network erhalten soll $NOA{$key}=0.22; #Kopie von %network erhält neuen score (von NOA) our $refnet = scoren(\%NOA, \%network); sub scoren{ my ($refmap, $refnet) =  @_; my %q_map = %$refmap; my %network2 = %$refnet; while (my ($key, $value) = each(%q_map)) { $network2{$key}->score($value); } return(\%network2); } foreach (keys %network){ $dia = $network{$_}->score; print "$_ = $dia \n"; }