summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/Games/Word.pm14
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/Games/Word.pm b/lib/Games/Word.pm
index 514b4e5..46129a7 100644
--- a/lib/Games/Word.pm
+++ b/lib/Games/Word.pm
@@ -5,7 +5,8 @@ require Exporter;
@EXPORT_OK = qw/random_permutation is_permutation all_permutations
shared_letters shared_letters_by_position
random_string_from
- is_substring all_substrings/;
+ is_substring all_substrings
+ is_subpermutation all_subpermutations/;
use strict;
use warnings;
@@ -137,6 +138,17 @@ sub all_substrings {
return @substrings;
}
+sub is_subpermutation {
+ my @subword = split //, shift;
+ my @word = split //, shift;
+
+ return eq_deeply(\@subword, subbagof(@word));
+}
+
+sub all_subpermutations {
+ return map { all_permutations $_ } all_substrings shift;
+}
+
=head1 NAME
Games::Word - ???