今天,我编写了一个perl脚本,如下代码:
my @files = <./{FF35B8A6-985C-4644-87B1-3FE83D1A50B}/*>;
print @files;
Run Code Online (Sandbox Code Playgroud)
但它什么也没输出.当我用一般路径(如d:)更改guid路径时,它工作正常.为什么?perl可以支持用guid字符串命名的路径吗?
操作系统:Windows 7 32位
Perl版本:ActivePerl 5.12.3
my @files = <\\{FF35B8A6-985C-4644-87B1-3FE83D1A50B\\}/*>;
print @files;
Run Code Online (Sandbox Code Playgroud)
应该管用.你需要引用特殊字符(这里{和 }).
从File :: Glob引用
在DOSISH系统上,反斜杠是一个有效的目录分隔符.在这种情况下,使用反斜杠作为引号(通过GLOB_QUOTE)会干扰使用反斜杠作为目录分隔符.最好(最简单,最便携)的解决方案是使用正斜杠表示目录分隔符,使用反斜杠表示引用.但是,这与这些系统上的"正常做法"不匹配.因此,作为对用户期望的让步,反斜杠(在GLOB_QUOTE下)仅引用glob元字符'[',']','{','}',' - ','〜'和反斜杠本身.所有其他反斜杠都保持不变.