#! perl -slw use strict; use Data::Dumper; my $site1 = 'abcdecdefgefghi'; my $site2 = 'zyxwvxwvutvutrs'; # brute force my (%hash, $loops); for my $base1( split //, $site1 ) { for my $base2( split //, $site2 ) { $hash{"${base1}_$base2"}++; $loops++; } } print Dumper \%hash; __DATA__ $VAR1 = { 'f_r' => 2, 'c_s' => 2, 'd_w' => 4, 'c_z' => 2, 'e_r' => 3, 'i_v' => 3, 'g_w' => 4, 'h_x' => 2, 'f_t' => 4, 'i_r' => 1, 'h_r' => 1, 'h_w' => 2, 'c_u' => 4, 'a_y' => 1, 'd_s' => 2, 'i_u' => 2, 'c_v' => 6, 'c_y' => 2, 'b_s' => 1, 'a_t' => 2, 'h_t' => 2, 'b_z' => 1, 'i_z' => 1, 'f_s' => 2, 'i_x' => 2, 'h_u' => 2, 'c_w' => 4, 'a_x' => 2, 'g_x' => 4, 'a_r' => 1, 'b_w' => 2, 'e_u' => 6, 'a_u' => 2, 'e_v' => 9, 'b_x' => 2, 'i_t' => 2, 'a_z' => 1, 'd_v' => 6, 'b_r' => 1, 'c_t' => 4, 'g_s' => 2, 'b_u' => 2, 'i_w' => 2, 'd_t' => 4, 'i_s' => 1, 'a_v' => 3, 'f_w' => 4, 'h_v' => 3, 'g_y' => 2, 'h_s' => 1, 'a_s' => 1, 'g_r' => 2, 'c_x' => 4, 'f_x' => 4, 'd_z' => 2, 'd_u' => 4, 'g_t' => 4, 'g_u' => 4, 'h_z' => 1, 'f_y' => 2, 'g_z' => 2, 'c_r' => 2, 'b_t' => 2, 'b_y' => 1, 'd_y' => 2, 'e_s' => 3, 'b_v' => 3, 'i_y' => 1, 'e_y' => 3, 'e_x' => 6, 'f_u' => 4, 'g_v' => 6, 'd_r' => 2, 'f_v' => 6, 'h_y' => 1, 'e_w' => 6, 'a_w' => 2, 'e_z' => 3, 'f_z' => 2, 'd_x' => 4, 'e_t' => 6 };