In list context, returns a (possibly empty) list of filename expansions on
the value of EXPR such as the standard Unix shell /bin/csh would do. In
scalar context, glob iterates through such filename expansions, returning
undef when the list is exhausted. This is the internal function
implementing the <*.c>
operator, but you can use it directly. If
EXPR is omitted, $_
is used. The <*.c>
operator is discussed in
more detail in I/O Operators in perlop.
Note that glob
splits its arguments on whitespace and treats
each segment as separate pattern. As such, glob("*.c *.h")
matches all files with a .c or .h extension. The expression
glob(".* *")
matches all files in the current working directory.
If non-empty braces are the only wildcard characters used in the
glob
, no filenames are matched, but potentially many strings
are returned. For example, this produces nine strings, one for
each pairing of fruits and colors:
- @many = glob "{apple,tomato,cherry}={green,yellow,red}";
Beginning with v5.6.0, this operator is implemented using the standard
File::Glob
extension. See File::Glob for details, including
bsd_glob
which does not treat whitespace as a pattern separator.