This is directly from :
perldoc File::Glob
NAME
File::Glob - Perl extension for BSD glob routine
SYNOPSIS
use File::Glob ':glob';
@list = glob('*.[ch]');
$homedir = glob('~gnat', GLOB_TILDE | GLOB_ERR);
if (GLOB_ERROR) {
# an error occurred reading $homedir
}
## override the core glob (core glob() does this automatically
## by default anyway, since v5.6.0)
use File::Glob ':globally';
my @sources = <*.{c,h,y}>
## override the core glob, forcing case sensitivity
use File::Glob qw

globally :case);
my @sources = <*.{c,h,y}>
## override the core glob forcing case insensitivity
use File::Glob qw

globally :nocase);
my @sources = <*.{c,h,y}>
File::Glob implements the FreeBSD glob(3) routine, which
is a superset of the POSIX glob() (described in IEEE Std
1003.2 "POSIX.2"

. The glob() routine takes a mandatory
`pattern' argument, and an optional `flags' argument, and
returns a list of filenames matching the pattern, with
interpretation of the pattern modified by the `flags'
variable. The POSIX defined flags are:
`GLOB_ERR'
Force glob() to return an error when it encounters a
directory it cannot open or read. Ordinarily glob()
continues to find matches.
`GLOB_MARK'
Each pathname that is a directory that matches the
pattern has a slash appended.
`GLOB_NOCASE'
By default, file names are assumed to be case
sensitive; this flag makes glob() treat case
differences as not significant.
Disclaimer:
Beware: Studies have shown that research causes cancer in lab rats.