內容

名稱

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 模式留待讀者練習。

僅應要求提供 EXPORTS

glob()

錯誤

可能應該內建在核心,且需要停止迎合 DOS 習慣。也需要進行最佳化。

作者

Gurusamy Sarathy <gsar@activestate.com>

歷程

另請參閱

perl

perlglob.bat

Text::ParseWords