perlglob.bat - a more capable perlglob.exe replacement
require 5.004; use File::DosGlob 'glob'; # override CORE::glob @perlfiles = glob "..\\pe?l/*.p?"; print <..\\pe?l/*.p?>; # from the command line > perl -MFile::DosGlob=glob -e "print <../pe*/*p?>" > perlglob ../pe*/*p?
For example, <..\\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 double-quotish parsing of the pattern by
perl.
When invoked as a program, it will print null-separated filenames to standard output.
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.
Extending it to csh patterns is left as an exercise to the reader.
glob()