perldoc > glob(3)

    glob EXPR
    glob    In list context, returns a (possibly empty) list of filename
            expansions on the value of EXPR such as the Unix shell Bash
            would do. In scalar context, glob iterates through such filename
            expansions, returning "undef" when the list is exhausted. If
            EXPR is omitted, $_ is used.

                # List context
                my @txt_files  = glob("*.txt");
                my @perl_files = glob("*.pl *.pm");

                # Scalar context
                while (my $file = glob("*.mp3")) {
                    # Do stuff
                }

            Glob also supports an alternate syntax using "<" ">" as
            delimiters. While this syntax is supported, it is recommended
            that you use "glob" instead as it is more readable and
            searchable.

                my @txt_files  = <"*.txt">;

            If you need case insensitive file globbing that can be achieved
            using the ":nocase" parameter of the "bsd_glob" module.

                use File::Glob qw(:globally :nocase);

                    my @txt = glob("readme*"); # README readme.txt Readme.md

            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 you want to glob filenames that might contain
            whitespace, you'll have to use extra quotes around the spacey
            filename to protect it. For example, to glob filenames that have
            an "e" followed by a space followed by an "f", use one of:

                my @spacies = <"*e f*">;
                my @spacies = glob('"*e f*"');
                my @spacies = glob(q("*e f*"));

            If you had to get a variable through, you could do this:

                my @spacies = glob("'*${var}e f*'");
                my @spacies = glob(qq("*${var}e f*"));

            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:

                my @many = glob("{apple,tomato,cherry}={green,yellow,red}");

            This operator is implemented using the standard "File::Glob"
            extension. See "bsd_glob" for details, including "bsd_glob",
            which does not treat whitespace as a pattern separator.

            If a "glob" expression is used as the condition of a "while" or
            "for" loop, then it will be implicitly assigned to $_. If either
            a "glob" expression or an explicit assignment of a "glob"
            expression to a scalar is used as a "while"/"for" condition,
            then the condition actually tests for definedness of the
            expression's value, not for its regular truth value.

            Internal implemenation details:

            This is the internal function implementing the "<*.c>" operator,
            but you can use it directly. The "<*.c>" operator is discussed
            in more detail in "I/O Operators" in perlop.

            Portability issues: "glob" in perlport.

Generated by phpman v4.9.26-5-g7740029 · Markdown · JSON · MCP Author: Che Dong Under GNU General Public License
2026-08-21 02:27 @216.73.216.45
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 Transitional!Valid CSS!