while (my $r = $attr_detail->fetchrow_hashref()) { $details->{$r->{'masterid'}}->{$r->{pco_attribute_id'}}->{pco_value} = $r->{'pco_value'}; } # ... while (my ($master_id, $attr_ref) = each %details) { while (my ($attr_id, $pco_value) = each %$attr_ref) { print DETAILS "$master_id\t$attr_id\t$pco_value\n"; } } #### for my $m_id_attr_id (keys %details) { my ($m_id, $attr_id) = split $;, $m_id_attr_id; print DETAILS "$m_id\t$attr_id\t$details{$m_id_attr_id}\n"; } #### print DETAILS (join "\t", split $;, $details{$_}), "\n" for keys %details;