my $seq=(keys %SEQ)[$j] <--- missing semicolon #### for(my $i=1; $i<@aas; $i++){ my $aa = $aas[$i]; @codons = @{$Deg_codons{$aa}}; my @SEQ = keys %SEQ; my $s = scalar @SEQ; for(my $j=0;$j<$s;$j++){ my $seq=@SEQ[$j]; foreach my $codon(@codons){ $SEQ{$seq.$codon}=1; $j++; $s++; } delete $SEQ{$seq}; $j--; $s--; } }