in reply to Why is this not what I think it is...
use strict; use warnings;. You use %hoh in the first code sample and %HoH in the second.
{$HoH{1}{'individual'}} tries to generate an anonymous hash but only provides one element - a hash requires pairs of elements. Very likely you intended my @value = @{$HoH{$counter}{'individual'}}; to cast the array reference to an array.
Possibly the overall code you are looking for is something like:
use strict; use warnings; my %HoH; my @newind = (1 .. 3); my @newchroma = (4 .. 6); my @newchromb = (7 .. 9); $HoH{1} = { individual => [@newind], chromasome1 => [@newchroma], chromasome2 => [@newchromb], }; my @value = @{$HoH{1}{'individual'}}; print "@value \n"; $value[0] = 42; $HoH{1}{'chromasome1'} = [@value]; print "@{$HoH{1}{'chromasome1'}}\n";
Prints:
1 2 3 42 2 3
|
|---|