NAME String::Substitute - generate strings using different combinations of subsitute characters VERSION version 0.002 SYNOPSIS use String::Substitute qw(get_all_substitutes); my @results = get_all_substitutes( string => 'ABC', substitutions => { A => 'Aa', B => 'Bb', }, ); say for @results; would print (with nondeterministic order): ABC aBC AbC abC As a one-liner it might look like this: perl -Ilib -MString::Substitute=get_all_substitutes -E 'say for get_all_substitutes(string => "ABC", substitutions => { A => "Aa", B => "Bb" })' DESCRIPTION This module is all about generating strings given an initial string and a set of allowed character substitutions. NAME String::Substitute - generate strings using different combinations of subsitute characters EXPORTS get_all_substitutes Return, as a list, all possible strings that can be generated by applying different combinations of substitutions to the string passed as the 'string' argument. See SYNOPSIS for an example. The order in which the different candidates are returned is not guaranteed. Takes only keyword arguments: string The string you want to apply the substitutions on. substitutions A HASHREF mapping each substitutable character to a string of different characters that it may be replaced with. e.g. {A => "Aa", B => "Bb"} means that each occurrence of A will be replaced with an 'A', or an 'a', in the returned substitutions. STABILITY Experimental, mostly because this depends on Regex::Genex which itself admits to relying on experimental or changeable aspects of the Perl interpreter. Tested on perl 5.20.3 - be sure to run the tests on newer versions if you will be relying on this SUPPORT If you require assistance, support, or further development of this software, please contact OpusVL using the details below: Telephone: +44 (0)1788 298 410 Email: community@opusvl.com Web: http://opusvl.com AUTHOR Nicholas Booker COPYRIGHT AND LICENSE This software is copyright (c) 2017 by OpusVL - www.opusvl.com. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.