my %snp; for my $snpId ( ... ) { for my $geneId ( ... ) { for my $transcriptId ( ... ) { for my $propertyId ( ... ) { $snp{ $snpId }{ $geneId }{ $TranscriptId }{ $propertyId } = ...; } } } } #### my %snp; for my $snpId ( ... ) { for my $geneId ( ... ) { for my $transcriptId ( ... ) { for my $propertyId ( ... ) { $snp{ join $;, $snpId, $geneId, $TranscriptId, $propertyId } = ...; } } } }