in reply to numerology experiment
Starting with your data, I get a solution similar to toolic's, but I use List::Util and List::MoreUtils.
use List::Util qw( sum ); use List::MoreUtils qw( zip ); my $str = "aabceezazerrfde"; my $wanted = "aez"; my @values = (7,2,26); my @wanted = split //, $wanted; my %value_of = zip @wanted, @values; my $tot = sum map { $value_of{$_} || 0 } split //, $str;
Note that if you use warnings (as you should), this will puke up "Use of uninitialized value in subroutine entry" for every letter in $str that is not in $wanted, but otherwise it works fine.
Update: With a small change, no more warnings.
|
|---|