# File-Globstar This library implements globbing with support for "**" in Perl. Two consecutive asterisks stand for all files and directories in the current directory and all of its descendants. See [File::Globstar](https://github.com/gflohr/File-Globstar/blob/master/lib/File/Globstar.pod) for more information. The library also contains [File::Globstar::ListMatch](https://github.com/gflohr/File-Globstar/blob/master/lib/File/Globstar/ListMatch.pod), a module that implements matching against lists of patterns in the style of [gitignore](https://git-scm.com/docs/gitignore). ## Installation Via CPAN: ``` $ perl -MCPAN -e install 'File::Globstar' ``` From source: ``` $ perl Build.PL Created MYMETA.yml and MYMETA.json Creating new 'Build' script for 'File-Globstar' version '0.1' $ ./Build $ ./Build install ``` From source with "make": ``` $ git clone https://github.com/gflohr/File-Globstar.git $ cd File-Globstar $ perl Makefile.PL $ make $ make install ``` ## Usage ```perl use File::Globstar qw(globstar fnmatchstar); @files = globstar '**/*.css'; @files = globstar 'css/**/*.css'; @files = globstar 'scss/**'; print "Match!\n" if fnmatchstar '*.pl', 'hello.pl'; print "Case-insensitive match!\n" if fnmatchstar '*.pl', 'Makefile.PL', ignoreCase => 1; $re = File::Globstar::translatestar('**/*.css'); use File::Globstar::ListMatch; # Parse from file. $matcher = File::Globstar::ListMatch('.gitignore', ignoreCase => 1); # Parse from file handle. $matcher = File::Globstar::ListMatch(STDIN, ignoreCase => 0); # Parse list of patterns. Comments and blank lines are not # stripped! $matcher = File::Globstar::ListMatch([ 'src/**/*.o', '.*', '!.gitignore' ], filename => 'exclude.txt'); # Parse string. $patterns = <