```{index} single: csh_glob; File::Glob function ``` ```{index} single: File::Glob::csh_glob; Perl function ``` # csh_glob Expand a pattern using the default flag set — the engine behind Perl's built-in `glob`. ## Synopsis ```perl use File::Glob qw(csh_glob); my @files = csh_glob('*.pl'); ``` ## What you get back 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." ## Examples ```perl use File::Glob qw(csh_glob); my @matches = csh_glob('*.txt'); # uses DEFAULT_FLAGS ``` ```perl ## Flip case sensitivity globally, then call use File::Glob qw(csh_glob :nocase); my @any = csh_glob('ReadMe*'); # matches README, readme, ReadMe, ... ``` ## Edge cases - 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. ## Differences from 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`. ## See also - `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`.