diff options
author | jluehrs2 <jluehrs2@uiuc.edu> | 2008-02-01 23:14:22 -0500 |
---|---|---|
committer | jluehrs2 <jluehrs2@uiuc.edu> | 2008-02-01 23:14:22 -0500 |
commit | eb43d2e2d8c874fe71a3b0bae6bd3f5e64638bfd (patch) | |
tree | a1315f08a62d2e251b87d6486733ad61c8b17831 | |
parent | 9c4f9eaf7ed81e259dde80a2f3ac050738cc7c60 (diff) | |
download | games-word-eb43d2e2d8c874fe71a3b0bae6bd3f5e64638bfd.tar.gz games-word-eb43d2e2d8c874fe71a3b0bae6bd3f5e64638bfd.zip |
implement random_string_from, which returns a string containing random characters from some character list
-rw-r--r-- | lib/Games/Word.pm | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/Games/Word.pm b/lib/Games/Word.pm index 3aae86c..7b281f5 100644 --- a/lib/Games/Word.pm +++ b/lib/Games/Word.pm @@ -3,7 +3,8 @@ package Games::Word; require Exporter; @ISA = qw/Exporter/; @EXPORT_OK = qw/random_permutation is_permutation all_permutations - shared_letters shared_letters_by_position/; + shared_letters shared_letters_by_position + random_string_from/; use strict; use warnings; @@ -89,6 +90,17 @@ sub shared_letters_by_position { return wantarray ? @letters : grep { defined } @letters; } +sub random_string_from { + my ($letters, $length) = @_; + + die "invalid letter list" if length $letters < 1 && $length > 0; + my @letters = split //, $letters; + my $ret = ''; + $ret .= $letters[int rand @letters] for 1..$length; + + return $ret; +} + =head1 NAME Games::Word - ??? |