use strict; use warnings; my %aas = ( 'serine' => ['TCA', 'TCC', 'TCG', 'TCT'], 'proline' => ['CCA', 'CCC', 'CCG', 'CCT'] ); my %codes; $codes{'earth'} = \%aas; $codes{'mars'} = { 'serine' => ['QWZ', 'QWX', 'QWW'], 'proline' => ['ZXZ', 'ZXX', 'ZXQ', 'ZXW'] }; base_code (\%codes); sub base_code { my $h_ref = $_[0]; for my $planet (keys %$h_ref){ for my $aa (keys %{ $h_ref->{$planet} }){ for my $codon (@{ $h_ref->{$planet}{$aa} }){ print $codon, "\n"; } } } } #### CCA CCC CCG CCT TCA TCC TCG TCT ZXZ ZXX ZXQ ZXW QWZ QWX QWW