Provided by: libstring-glob-permute-perl_0.01-2_all bug

NAME

       String::Glob::Permute - Expand {foo,bar,baz}[2-4] style string globs

SYNOPSIS

           use String::Glob::Permute qw( string_glob_permute );

           my $pattern = "host{foo,bar,baz}[2-4]";

           for my $host (string_glob_permute( $pattern )) {
               print "$host\n";
           }

             # hostfoo2
             # hostbar2
             # hostbaz2
             # hostfoo3
             # hostbar3
             # hostbaz3
             # hostfoo4
             # hostbar4
             # hostbaz4

DESCRIPTION

       The "string_glob_permute()" function provided by this module expands glob-like notations
       in text strings and returns all possible permutations.

       For example, to run a script on hosts host1, host2, and host3, you might write

           @hosts = string_glob_permute( "host[1-3]" );

       and get a list of hosts back: ("host1", "host2", "host3").

       Ranges with gaps are also supported, just separate the blocks by commas:

           @hosts = string_glob_permute( "host[1-3,5,9]" );

       will return ("host1", "host2", "host3", "host5", "host9").

       And, finally, using curly brackets and comma-separated lists of strings, as in

           @hosts = string_glob_permute( "host{dev,stag,prod}" );

       you'll get permutations with each of the alternatives back: ("hostdev", "hoststag",
       "hostprod") back.

       All of the above can be combined, so

           my @hosts = string_glob_permute( "host{dev,stag}[3-4]" );

       will result in the permutation ("hostdev3", "hoststag3", "hostdev4", "hoststag4").

       The patterns allow numerical ranges only [1-3], no string ranges like [a-z]. Pattern must
       not contain blanks.

       The function returns a list of string permutations on success and "undef" in case of an
       error. A warning is also issued if the pattern cannot be recognized.

   Zero padding
       An expression like

           @hosts = string_glob_permute( "host[8-9,10]" );
             # ("host8", "host9", "host10")

       will expand to ("host8", "host9", "host10"), featuring no zero-padding to create equal-
       length entries. If you want ("host08", "host09", "host10"), instead, pad all integers in
       the range expression accordingly:

           @hosts = string_glob_permute( "host[08-09,10]" );
             # ("host08", "host09", "host10")

   Note on Perl's internal Glob Permutations
       Note that there's a little-known feature within Perl itself that does something similar,
       for example

           print "$_\n" for < foo{bar,baz} >;

       will print

           foobar
           foobaz

       if there is no file in the current directory that matches that pattern.
       String::Glob::Permute, on the other hand, expands irrespective of matching files, by
       simply always returning all possible permutations. It's also worth noting that Perl's
       internal Glob Permutation does not support String::Glob::Permute's [m,n] or [m-n] syntax.

COPYRIGHT & LICENSE

       Copyright (c) 2008 Yahoo! Inc. All rights reserved. The copyrights to the contents of this
       file are licensed under the Perl Artistic License (ver. 15 Aug 1997).

AUTHOR

       Algorithm, Code: Rick Reed, Ryan Hamilton, Greg Olszewski.  Module: 2008, Mike Schilli
       <cpan@perlmeister.com>