gpt4 book ai didi

perl - 是否可以保证在 Perl 中对通配结果进行排序?

转载 作者:行者123 更新时间:2023-12-04 02:54:36 25 4
gpt4 key购买 nike

是否可以保证从 glob(例如 <*> )返回的文件名数组将被排序?

我找不到以一种或另一种方式提及排序 in the documentation ,但在我尝试过的每个目录中似乎都是这种情况。

我正在谈论使用这种语法:

@files = <*>;

如果我需要对文件进行排序,以下内容是否多余?
@files = sort(<*>);

最佳答案

在 Perl 5.6.0 和更新版本中,文件名是按顺序排列的:

Beginning with v5.6.0, this operator is implemented using the standard File::Glob extension.



-- perldoc for glob

By default, the pathnames are sorted in ascending ASCII order.



-- perldoc for File::Glob

有一个问题:

By default, file names are assumed to be case sensitive



-- perldoc for File::Glob

说了这么多,您可以更改此行为以对大小写不敏感
use File::Glob qw(:globally :nocase);

请注意, :globally 从 5.6.0 开始是多余的,但这也适用于旧版本。

或者,如果您只想做一个不区分大小写的 glob:
use File::Glob ':glob';

@files = bsd_glob('*', GLOB_NOCASE);

关于perl - 是否可以保证在 Perl 中对通配结果进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1461552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com