csh_glob#

Expand a pattern using the default flag set - the engine behind Perl’s built-in glob.

Σύνοψη#

use File::Glob qw(csh_glob);
my @files = csh_glob('*.pl');

Τι επιστρέφεται#

A list of matching filenames. Flags always come from $File::Glob::DEFAULT_FLAGS (initially GLOB_CSH); csh_glob takes no flag argument. Sort order, brace expansion, tilde expansion, and the rest follow whatever DEFAULT_FLAGS currently holds.

You almost certainly want bsd_glob or the angle-bracket operator <...> instead. csh_glob exists because Perl’s built-in glob dispatches through it; calling it directly is documented as «don’t unless you know what you’re doing.»

Παραδείγματα#

use File::Glob qw(csh_glob);
my @matches = csh_glob('*.txt');        # uses DEFAULT_FLAGS
## Flip case sensitivity globally, then call

use File::Glob qw(csh_glob :nocase);
my @any = csh_glob('ReadMe*');          # matches README, readme, ReadMe, ...

Οριακές περιπτώσεις#

  • Called with no arguments: returns the empty list.

  • Unlike upstream, does not split the pattern on whitespace into multiple sub-patterns; the whole string is treated as one pattern.

  • Does not maintain per-op iterator state, so it cannot be driven one-result-at-a-time in scalar context.

Διαφορές από το upstream#

  • No whitespace-splitting of patterns. Upstream csh_glob tokenises "a* b*" into two patterns; pperl treats it as a single literal pattern. Use bsd_glob('{a*,b*}') if you need multiple patterns in one call.

  • No scalar-context iterator. The per-op result cache that lets upstream’s while (my $f = <*.c>) yield one name per iteration is not implemented - scalar context returns the match count. Covered by t/81-xs-native/File/Glob/*.t.

Δείτε επίσης#

  • bsd_glob - the public, flag-accepting equivalent; prefer it.

  • GLOB_CSH - the flag set DEFAULT_FLAGS is seeded with.

  • :nocase / :case - import tags that toggle GLOB_NOCASE in DEFAULT_FLAGS.