当我使用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);