#!/usr/bin/env perl use strict; use warnings; my %MWs; #create the hash MWs with the amino acids and their molecular weight. %MWs = ( "A" => 71.1, "D" => 115.0, "F" => 146.1, "H" => 137.1, "K" => 128.1, "M" => 131.1, "P" => 97.1, "R" => 156.1, "T" => 101.1, "W" => 186.2, "C" => 103.1, "E" => 129.1, "G" => 57.1, "I" => 113.1, "L" => 113.1, "N" => 114.1, "Q" => 128.1, "S" => 87.1, "V" => 99.1, "Y" => 163.1, ); my $sum = 0.0; print "Type amino acids. Hit [ctrl]-D when done.\n"; while ( my $line = ){ chomp $line; next unless length $line; $sum += $MWs{$_} foreach grep {exists $MWs{$_}} map {uc} split //, $line; } print "Molecular weight of this peptide is: $sum \n"