#!/usr/bin/env perl use strict; use warnings; my %master_letter_freq = qw{w 1 h 1 t 1 o 1 r 2 e 1}; my @result = qw{thew trow whew}; RESULT: foreach (@result) { my %seen; $seen{$_}++ for (split //,lc $_); foreach (keys %seen) { next RESULT if ($seen{$_} > $master_letter_freq{$_}); } print "$_\n"; } foreach (@result) { my %seen; $seen{$_}++ for (split //,lc $_); my $no_print = 0; foreach (keys %seen) { $no_print++ if ($seen{$_} > $master_letter_freq{$_}); } print "$_\n" unless $no_print; } #### thew trow thew trow #### dd \%master_letter_freq; # <-- QUERY dd \@result; # <-- QUERY RESULT: foreach (@result) { print "|$_|\n"; # <-- QUERY my %seen; $seen{$_}++ for (split //,lc $_); dd \%seen; # <-- QUERY # ... and so on ... #### ./script.pl | cat -vet