while (my ($key, $value) = each (%$components)) { $OUT .= "\nProject #: $key\n"; while (my ($sub_key, $sub_value) = each (%$value)) { $sub_key =~ s/_c$//; $sub_key =~ s/_/ /g; if (!defined $sub_value || $sub_value eq '') { $sub_value = "No data"; } $OUT .= "\t$sub_key: $sub_value\n"; } }