my %hash = (a=>2, b=>1, c=>5, d=>3, e=>4); my $input = "abcdaeec"; my @input = split //, $input; for my $w (2, 3) { for (my $i = $w; $i < @input; $i++) { printf "%s+%s = %d+%d = %d\n", $input[$i-$w], $input[$i], $hash{$input[$i-$w]}, $hash{$input[$i]}, $hash{$input[$i-$w]} + $hash{$input[$i]}; } } __END__ a+c = 2+5 = 7 b+d = 1+3 = 4 c+a = 5+2 = 7 d+e = 3+4 = 7 a+e = 2+4 = 6 e+c = 4+5 = 9 a+d = 2+3 = 5 b+a = 1+2 = 3 c+e = 5+4 = 9 d+e = 3+4 = 7 a+c = 2+5 = 7