File::DosGlob - 類似 DOS 的通配符,然後有一些
require 5.004;
# override CORE::glob in current package
use File::DosGlob 'glob';
# override CORE::glob in ALL packages (use with extreme caution!)
use File::DosGlob 'GLOBAL_glob';
@perlfiles = glob "..\\pe?l/*.p?";
print <..\\pe?l/*.p?>;
# from the command line (overrides only in main::)
> perl -MFile::DosGlob=glob -e "print <../pe*/*p?>"
一個模組,實作類似 DOS 的通配符,並有一些增強功能。它在所有方面都與 perlglob.exe (M$ setargv.obj 版本) 相容,只有一個例外 - 它了解目錄組件中的萬用字元。
例如,<..\\l*b\\file/*glob.p?>
會如預期般運作 (它會找到類似 '..\lib\File/DosGlob.pm' 的東西)。請注意,所有路徑組件都不區分大小寫,並且反斜線和正斜線都被接受並保留。如果您要將反斜線實際放入字串中,您可能必須加倍反斜線,因為 perl 會對模式進行雙引號解析。
參數中的空白區隔不同的模式,因此 glob('*.exe *.dll')
會將所有以 .exe
或 .dll
結尾的檔案名稱都納入 glob。如果您想要在 glob 模式中加入實際的空白,可以使用雙引號或反斜線來跳脫。例如 glob('c:/"Program Files"/*/*.dll')
或 glob('c:/Program\ Files/*/*.dll')
。參數會使用 Text::ParseWords::parse_line()
進行標記化,因此請參閱 Text::ParseWords 以了解所使用的引號規則的詳細資訊。
將其延伸至 csh 模式留待讀者練習。
glob()
可能應該內建在核心,且需要停止迎合 DOS 習慣。也需要進行最佳化。
Gurusamy Sarathy <gsar@activestate.com>
支援全域覆寫 glob() (GSAR 3-JUN-98)
純量內容、獨立反覆運算內容修正 (GSAR 15-SEP-97)
一些目錄對檔案最佳化讓 glob 匯入速度比使用 perlglob.exe 快 10 倍,而使用 perlglob.bat 則僅比 perlglob.exe 慢兩倍 (GSAR 28-MAY-97)
Borland 下缺少相容的 perlglob.exe 所引發的數項清理 (GSAR 27-MAY-97)
初始版本 (GSAR 20-FEB-97)
perl
perlglob.bat
Text::ParseWords