sub matchrule {
my ( $old, $highs, $word ) = @_;
$old eq $word and return 0;
my $newmask = ( $old ^ $word ) =~ tr/\0/\xff/cr;
( $newmask & $highs ) =~ tr/5// and return 0;
my $tiles = "@tiles";
$tiles =~ s/$_// or return 0 for ( $newmask & $word ) =~ /\w/g;
return 1;
}
####
'hello' ^ 'world' => "\37\n\36\0\13"
##
##
my $newmask = ('hello' ^ 'world') =~ tr/\0/\xff/cr => "\377\377\377\0\377"
##
##
("\377\377\377\0\377" & '14222') => "142\0002"
##
##
"\377\377\377\0\377" & 'world' => "wor\0d"