```{index} single: File::DosGlob ``` # File::DosGlob ```{pperl-module-badges} File::DosGlob ``` A DOS-style `glob`, whose iterators live per call site. ```perl use File::DosGlob 'glob'; # overrides glob() in this package print join(" ", map { s{.*/}{}r } glob("$d/*.txt")), "\n"; # b.txt a.txt while (my $f = glob("$d/*.log")) { print "log: $f\n" } # one iterator per call site ``` It understands DOS-style paths as well as Unix ones - drive letters, `\` as a separator, spaces in names - and, unlike the built-in `glob`, returns names in directory order, unsorted. Importing `glob` replaces it in the importing package; `use File::DosGlob 'GLOBAL_glob'` replaces it everywhere. This is a native implementation of the XS half of File::DosGlob 1.12: `File/DosGlob.pm` is used unchanged and does the globbing, keeping each call site's iterator in `%File::DosGlob::entries`, keyed by the op that called `glob`. The XS half supplies that key, `_callsite()`, and an op-free hook that deletes an op's entry when the op is freed, so a new op at the same address does not inherit it. ## Differences from upstream None.