gpt4 book ai didi

perl - 如何按排序顺序读取目录中的文件?

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

当我在 Perl 中使用 opendir 读取目录时, readdir , 和 closedir , readdir函数似乎没有以任何特定的顺序读取文件(我可以说)。

我正在阅读一个目录,其中包含以纪元时间戳命名的子目录:

1224161460
1228324260
1229698140

我想按数字顺序读取这些目录,这会将最旧的目录放在首位。

当我使用 readdir ,它读取的第一个是1228324260,也就是中间那个。我知道我可以将目录内容放在一个数组中并对数组进行排序,但是有一个选项可以传递给 readdir按排序顺序阅读?或者也许比将所有内容插入数组并对数组进行排序更优雅的方式来实现这一点?可能也有模块可以做到这一点,但是很难在我们的环境中安装模块,所以除非它是一个内置模块,否则我宁愿不使用模块......

谢谢!

编辑
根据要求,我发布了我正在使用的代码:
opendir( my $data_dh, $data_dir ) or die "Cannot open $data_dir\n";
while ( my $name = readdir($data_dh) ) {
next if ( $name eq '.' or $name eq '..' );
my $full_path = "${data_dir}/${name}";
next unless ( -d $full_path );
process_dir($full_path);
}
closedir($data_dh);

最佳答案

读取目录 可以在数组上下文中调用,所以只需这样做:

opendir( my $data_dh, $data_dir) or die "Cannot open $data_dir\n";
my @files = sort { $a <=> $b } readdir($data_dh);
while ( my $name = shift @files ) {
...

关于perl - 如何按排序顺序读取目录中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/436189/

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