Make a Perl program to calculate the length of a Mycoplasma genitalium bacterium by MJ

From Biolecture.org

#Code

print "Enter the DNA sequence: ";
$dna = <>;
chomp($dna);
$dna =~s/[^acgt]//ig; #specify parameters
my $dna = uc($dna);
my(%genetic_code) = (
    'TCA' => 'S', 'TCC' => 'S', 'TCG' => 'S', 'TCT' => 'S', # Serine
    'TTC' => 'F', 'TTT' => 'F',  # Phenylalanine
    'TTA' => 'L', 'TTG' => 'L',    # Leucine
    'TAC' => 'Y', 'TAT' => 'Y',    # Tyrosine
    'TAA' => '_', 'TAG' => '_', 'TGA' => '_',    # Stop
    'TGC' => 'C', 'TGT' => 'C',    # Cysteine
    'TGG' => 'W',    # Tryptophan
    'CTA' => 'L', 'CTC' => 'L', 'CTG' => 'L', 'CTT' => 'L',    # Leucine
    'CCA' => 'P', 'CCC' => 'P', 'CCG' => 'P', 'CCT' => 'P',    # Proline
    'CAC' => 'H', 'CAT' => 'H',    # Histidine
    'CAA' => 'Q', 'CAG' => 'Q',    # Glutamine
    'CGA' => 'R', 'CGC' => 'R', 'CGG' => 'R', 'CGT' => 'R',    # Arginine
    'ATA' => 'I', 'ATC' => 'I', 'ATT' => 'I',    # Isoleucine
    'ATG' => 'M',    # Methionine
    'ACA' => 'T', 'ACC' => 'T', 'ACG' => 'T', 'ACT' => 'T',    # Threonine
    'AAC' => 'N', 'AAT' => 'N',    # Asparagine
    'AAA' => 'K', 'AAG' => 'K',    # Lysine
    'AGC' => 'S', 'AGT' => 'S',    # Serine
    'AGA' => 'R', 'AGG' => 'R',    # Arginine
    'GTA' => 'V', 'GTC' => 'V', 'GTG' => 'V', 'GTT' => 'V',    # Valine
    'GCA' => 'A', 'GCC' => 'A', 'GCG' => 'A', 'GCT' => 'A',    # Alanine
    'GAC' => 'D', 'GAT' => 'D',    # Aspartic Acid
    'GAA' => 'E', 'GAG' => 'E',    # Glutamic Acid
    'GGA' => 'G', 'GGC' => 'G', 'GGG' => 'G', 'GGT' => 'G',    # Glycine
);
my ($protein) = "";
for(my $i=0;$i<length($dna)-2;$i+=3)
{
  $codon = substr($dna,$i,3);
  $protein .= $genetic_code{$codon};
}
$ld = length($dna);
$lp = length($protein);

print "The length of DNA is $ld and length of protein is $lp";
<>;

#Result

 

Perl Programming HW by MJ 20180604