for my $i (43, 47..57, 61, 65..90, 97..122){ my $x = rand()*26; my $y = rand()*26; unless( $F[$x]->[$y] ){ $F{chr($i)} = chr(65+$x).chr(65+$y); $F[$x]->[$y] = chr($i); } else{ print "Redoing $i(", chr($i), ")\n"; redo; } } #use Data::Dumper; #print Data::Dumper->Dump([\%F]); while(<>){ $_ = uc($_); push @G, map($F{$_}, split('', $_)); } for(my $i=0;$i<26;$i++){