内容

名称

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('c:/"Program Files"/*/*.dll')glob('c:/Program\ Files/*/*.dll')。参数使用 Text::ParseWords::parse_line() 进行标记,因此有关使用的引号规则的详细信息,请参见 Text::ParseWords

将其扩展到 csh 模式留给读者作为练习。

导出(仅按需)

glob()

BUGS

应该内置到核心,并且需要停止迎合 DOS 习惯。也需要进行优化。

AUTHOR

Gurusamy Sarathy <[email protected]>

HISTORY

SEE ALSO

perl

perlglob.bat

Text::ParseWords