sub get_lower_level_ehms_count { my %design_hash = %{$_[0]}; my %ehm_count ; my $embedded = $design_hash{'EMBEDDED_HMS'} or return \%ehm_count; for my $emb (@$embedded) { my $design_top = $emb->{'TOP'}; if($emb->{'EMBEDDED_HMS'}) { $lower_levels = get_lower_level_ehms_count($emb); $ehm_count{$_} += $lower_levels->{$_} for keys %$lower_levels; } $ehm_count{$design_top} += scalar @{$emb->{'INSTANCES'}}; } return \%ehm_count; }