sub score { my ($str, $array) = @_; my $vec = ''; for (@$array) { my $idx = index $str, $_; # Set bits at each matched location vec($vec, $_, 1)= 1 for $idx..$idx+length($_)-1; } # Count set bits unpack '%32b*', $vec; }