Something like this?

#!/usr/bin/perl use strict; # https://perlmonks.org/?node_id=11116556 use warnings; use Path::Tiny; my $dictionary = path( '/usr/share/dict/words' ); my @tiles = qw( a a d r t s c ); my $string = 'f e '; my $pat = join '', map "$_?", sort @tiles, $string =~ /\w/g; my $tilepat = join '', map "$_?", sort @tiles; my $letters = join '', @tiles, $string =~ /\w/g; print "$pat\n$tilepat\n"; my @matches = grep { ( join '', sort split // ) =~ /^$pat$/ } $dictionary->slurp =~ /^[$letters]{2,}$/gm; my @places; ($string =~ tr/ /./r) =~ /(?<!\w).{2,}(?!\w)(?{ push @places, $& })(*FAIL)/; @places = grep /\w/, @places; use Data::Dump 'dd'; dd \@places; my @matches1 = extension(1); print "@matches1\n\n"; my @matches2 = extension(2); print "@matches2\n\n"; sub extension { my $id = shift; my @found; for my $placepat ( $id == 1 ? @places : map expand($_), @places ) { for my $match ( @matches ) { $match =~ /^$placepat$/ or next; my $newtiles = $match & ($placepat =~ tr/.a-z/\xff\0/r); (join '', sort $newtiles =~ /\w/g) =~ /^$tilepat$/ and push @found, $match; } } return @found; } sub expand { grep /\w/, glob join '', map { /\w/ ? "{$_,.}" : $_ } split //, shif +t; }

In reply to Re: Upwords IV: creating words with underpatterns by tybalt89
in thread Upwords IV: creating words with underpatterns by Aldebaran

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.