lenti234 [~/perltest]>more count.pl #!/user/bin/perl -w # # assign values to three arrays @aa_names = qw (alanine arginine aspartate asparagine cysteine glutamate glutamine glycine histidine isoleucine leucine lysine methionine phenylalanine proline serine threonine tyrosine tryptophan valine); @aa_1codes = qw (A R D N C E Q G H I L K M F P S T Y W V); @aa_3codes = qw (Ala Arg Asp Asn Cys Glu Gln Gly His Ile Leu Lys Met Phe Pro Ser Thr Tyr Trp Val); # initialize (set to initial value (zero)) counters $total = 0; # counter for total number of codes $good = 0; # counter for number of legal codes # start main program loop $again = "y"; until ($again ne "y") { # get code from user, convert to upper case print "\nEnter a single letter amino acid code: "; chomp ($code = ); $code = uc ($code); $total++; # increment total counter # check if it is a legal code $i = 0; while (defined ($aa_1codes[$i]) and $code ne $aa_1codes[$i]) { $i ++; } # if legal, print code, 3 letter code, and aa name, else print message if (defined ($aa_1codes[$i])) { print $aa_names[$i], " ", $aa_3codes[$i], " ", $aa_1codes[$i], "\n\n"; $good++; #increment good counter } else { print "$code is not a legal code.\n\n"; } # end main program loop print "Again (y/n)? "; chomp ($again = ); $again = lc ($again); $again = substr ($again,0,1); } # print summary statistics print "$total codes entered \n"; print "$good (",int(($good*1000/$total)+0.5)/10,"%) legal codes \n\n"; exit; lenti235 [~/perltest]>perl count.pl Enter a single letter amino acid code: A alanine Ala A Again (y/n)? y Enter a single letter amino acid code: b B is not a legal code. Again (y/n)? y Enter a single letter amino acid code: c cysteine Cys C Again (y/n)? n 3 codes entered 2 (66.7%) legal codes lenti236 [~/perltest]>