Kip*_*Kip 10 sorting perl glob
是否有保证从glob(例如<*>)返回的文件名数组将被排序?
我无法在文档中找到排序方式,但在我尝试过的每个目录中似乎都是这种情况.
我在谈论使用这种语法:
@files = <*>;
Run Code Online (Sandbox Code Playgroud)
如果我需要对文件进行排序,下面的内容是多余的吗?
@files = sort(<*>);
Run Code Online (Sandbox Code Playgroud)
Pow*_*ord 23
在Perl 5.6.0及更高版本中,文件名已排序:
从v5.6.0开始,此运算符使用标准的File :: Glob扩展实现.
默认情况下,路径名按升序ASCII顺序排序.
有一个问题:
默认情况下,假定文件名区分大小写
说了这么多,你可以改变这种行为,以区分大小写不敏感
use File::Glob qw(:globally :nocase);
Run Code Online (Sandbox Code Playgroud)
请注意:自5.6.0以来全局冗余,但这也适用于旧版本.
或者,如果您只想使用不区分大小写的单个glob:
use File::Glob ':glob';
@files = bsd_glob('*', GLOB_NOCASE);
Run Code Online (Sandbox Code Playgroud)