Perl Code YY

From Biolecture.org

my $dna = '';
my $protein = '';
my $codon;

 sub codon_table {
     my($codon) = @_;
        if( $codon =~ /TTT/i ){ return 'F' }
     elsif( $codon =~ /TTC/i ){ return 'F' }
     elsif( $codon =~ /TTA/i ){ return 'L' }
     elsif( $codon =~ /TTG/i ){ return 'L' }
     elsif( $codon =~ /TCT/i ){ return 'S' }
     elsif( $codon =~ /TCC/i ){ return 'S' }
     elsif( $codon =~ /TCA/i ){ return 'S' }
     elsif( $codon =~ /TCG/i ){ return 'S'}
     elsif( $codon =~ /TAT/i ){ return 'Y' }
     elsif( $codon =~ /TAC/i ){ return 'Y' }
     elsif( $codon =~ /TAA/i ){ return '*' }
     elsif( $codon =~ /TAG/i ){ return '*' }
     elsif( $codon =~ /TGT/i ){ return 'C' }
     elsif( $codon =~ /TGC/i ){ return 'C' }
     elsif( $codon =~ /TGA/i ){ return '*' }
     elsif( $codon =~ /TGG/i ){ return 'W' }
     elsif( $codon =~ /CTT/i ){ return 'L' }
     elsif( $codon =~ /CTC/i ){ return 'L' }
     elsif( $codon =~ /CTA/i ){ return 'L' }
     elsif( $codon =~ /CTG/i ){ return 'L' }
     elsif( $codon =~ /CCT/i ){ return 'P' }
     elsif( $codon =~ /CCC/i ){ return 'P' }
     elsif( $codon =~ /CCA/i ){ return 'P' }
     elsif( $codon =~ /CCG/i ){ return 'P' }
     elsif( $codon =~ /CAT/i ){ return 'H' }
     elsif( $codon =~ /CAC/i ){ return 'H' }
     elsif( $codon =~ /CAA/i ){ return 'Q' }
     elsif( $codon =~ /CAG/i ){ return 'Q' }
     elsif( $codon =~ /CGT/i ){ return 'R' }
     elsif( $codon =~ /CGC/i ){ return 'R' }
     elsif( $codon =~ /CGA/i ){ return 'R' }
     elsif( $codon =~ /CGG/i ){ return 'R' }
     elsif( $codon =~ /ATT/i ){ return 'I' }
     elsif( $codon =~ /ATC/i ){ return 'I' }
     elsif( $codon =~ /ATA/i ){ return 'I' }
     elsif( $codon =~ /ATG/i ){ return 'M' }
     elsif( $codon =~ /ACT/i ){ return 'T' }
     elsif( $codon =~ /ACC/i ){ return 'T' }
     elsif( $codon =~ /ACA/i ){ return 'T' }
     elsif( $codon =~ /ACG/i ){ return 'T' }
     elsif( $codon =~ /AAT/i ){ return 'N' }
     elsif( $codon =~ /AAC/i ){ return 'N' }
     elsif( $codon =~ /AAA/i ){ return 'K' }
     elsif( $codon =~ /AAG/i ){ return 'K' }
     elsif( $codon =~ /AGT/i ){ return 'S' }
     elsif( $codon =~ /AGC/i ){ return 'S' }
     elsif( $codon =~ /AGA/i ){ return 'R' }
     elsif( $codon =~ /AGG/i ){ return 'R' }
     elsif( $codon =~ /GTT/i ){ return 'V' }
     elsif( $codon =~ /GTC/i ){ return 'V' }
     elsif( $codon =~ /GTA/i ){ return 'V' }
     elsif( $codon =~ /GTG/i ){ return 'V' }
     elsif( $codon =~ /GCT/i ){ return 'A' }
     elsif( $codon =~ /GCC/i ){ return 'A' }
     elsif( $codon =~ /GCA/i ){ return 'A' }
     elsif( $codon =~ /GCG/i ){ return 'A' }
     elsif( $codon =~ /GAT/i ){ return 'D' }
     elsif( $codon =~ /GAC/i ){ return 'D' }
     elsif( $codon =~ /GAA/i ){ return 'E' }
     elsif( $codon =~ /GAG/i ){ return 'E' }
     elsif( $codon =~ /GGT/i ){ return 'G' }
     elsif( $codon =~ /GGC/i ){ return 'G' }
     elsif( $codon =~ /GGA/i ){ return 'G' }
     elsif( $codon =~ /GGG/i ){ return 'G' }
     else{print STDERR "Wrong!!\nPlease check your sequence\n\n";
          exit;}
}

for(my $i=0; $i < (length($dna) - 2) ; $i += 3) {
    $codon = substr($dna,$i,3);
    $protein .= Codon_table($codon);
}

print "\n  <DNA>\n\n$dna\n\n  <Protein>\n\n$protein\n\n";

exit;