use strict; use warnings; my %hash = (); $hash{ chr($_) } = $_ - ord(q{A}) + 1 for (ord(q{A}) .. ord(q{Z})); while () { chomp; my ($line, $sum) = ($_, 0); my @arr = split(//, $line); while (@arr) { my $char = shift(@arr); $sum += ($char =~ m/[A-Z]/) ? $hash{$char} : $char; } print qq{$line : $sum}; } __DATA__ AD3 FG3 ZZ5 BR7 GT3