File::DosGlob - DOS like globbing and then some
perlglob.bat - a more capable perlglob.exe replacement
# override CORE::glob in current package
use File::DosGlob 'glob';
@perlfiles = glob "..\\pe?l/*.p?";
# from the command line (overrides only in main::)
> perl -MFile::DosGlob=glob -e "print <../pe*/*p?>"
> perlglob ../pe*/*p?
A module that implements DOS-like globbing with a few enhancements. This
file is also a portable replacement for perlglob.exe. It is largely
compatible with perlglob.exe (the M$ setargv.obj version) in all but one
respect--it understands wildcards in directory components.
For example, C<<..\\l*b\\file/*glob.p?>> will work as expected (in that
it will find something like '..\lib\File/DosGlob.pm' alright). Note that
all path components are case-insensitive, and that backslashes and
forward slashes are both accepted, and preserved. You may have to double
the backslashes if you are putting them in literally, due to doublequotish
parsing of the pattern by perl.
When invoked as a program, it will print null-separated filenames to
While one may replace perlglob.exe with this, usage by overriding
CORE::glob via importation should be much more efficient, because it
avoids launching a separate process, and is therefore strongly
recommended. Note that it is currently possible to override builtins
like glob() only on a per-package basis, not "globally". Thus, every
namespace that wants to override glob() must explicitly request the
override. See the perlsub manpage.
Extending it to csh patterns is left as an exercise to the reader.
EXPORTS (by request only)
Should probably be built into the core, and needs to stop pandering to
DOS habits. Needs a dose of optimizium too.
Gurusamy Sarathy <firstname.lastname@example.org>
o Scalar context, independent iterator context fixes (GSAR 15-SEP-97)
o A few dir-vs-file optimizations result in glob importation being 10
times faster than using perlglob.exe, and using perlglob.bat is only
twice as slow as perlglob.exe (GSAR 28-MAY-97)
o Several cleanups prompted by lack of compatible perlglob.exe under
Borland (GSAR 27-MAY-97)
o Initial version (GSAR 20-FEB-97)
PPPPaaaaggggeeee 2222 [ Back ]