my %datastructure = ( forward_iteration => { }, reverse_iteration => { }, ); #### my %datastructure = { elem1 => { forward => 1, reverse => 2, }, elem2 => { forward => 2, reverse => 1, }, }; #### $datastructures{$elem} = { forward => forward_val($elem), reverse => reverse_val($elem), other_way => other_way_val($elem), }